Webseitenpflege per Versionsverwaltung Wordpress-Entwicklung mit GitHub

Von Christian Rentrop |

Anbieter zum Thema

GitHub eignet sich auch für die Entwicklung von Wordpress-Sites, Plug-ins und Themes. Dazu müssen beide Dienste aber miteinander verbunden werden. Das ist zum Glück leicht zu bewerkstelligen – und bietet eine Reihe von Vorteilen.

Über den Umweg eines GitHub-Repositorys lassen sich komplette Wordpress-Installationen lokal und remote pflegen.
Über den Umweg eines GitHub-Repositorys lassen sich komplette Wordpress-Installationen lokal und remote pflegen.
(Bild: 200degrees / Pixabay)

Wordpress ist nach wie vor das beliebteste Open-Source-CMS – und das nicht ohne Grund: Es gibt zahllose Plug-ins und Themes, die das Aufsetzen einer Wordpress-Seite zu einem Kinderspiel machen.

Für Entwickler und Entwicklerinnen bietet Wordpress ebenfalls enormes Potenzial: Durch die große Verbreitung lassen sich Premium-Plug-ins und -Themes auf Plattformen wie Envato oder über das Wordpress-Plug-in-System gut vermarkten und verkaufen. Das wiederum kann Unternehmen oder freien Web-Developern helfen, ein kleines Nebeneinkommen zu erwirtschaften – oder sogar das gesamte Geschäftsmodell auf Wordpress aufzubauen.

Bildergalerie

Wordpress mit GitHub: Ein leistungsfähiges Team

Die Entwicklung von Wordpress-Zusätzen ist natürlich mit jedem Text-Editor möglich. Für die Pflege bietet sich hier jedoch – genau wie bei allen anderen Projekten – das Versionsmanagementsystem GitHub an.

Um sinnvoll mit GitHub für Wordpress zu entwickeln, ist es natürlich sinnvoll, beide Plattformen miteinander zu verbinden. Das geht natürlich im Live-Betrieb, deutlich einfacher ist aber das Aufsetzen einer Staging-Umgebung, wahlweise lokal oder auf dem Server, mit deren Hilfe reibungslos entwickelt werden kann, während die Live-Site zunächst unberührt bleibt.

Staging-Site erstellen

Eine Remote-Staging-System kann schnell mit Wordpress-Plug-in WP-Staging aus der bestehenden Seite gezogen werden. Eine lokale Staging-Umgebung für Wordpress lässt sich am einfachsten mit dem Wordpress-Stack von Bitnami aufsetzen: Dabei handelt es sich um einen lokalen XAMPP-Webserver, bei dem Wordpress bereits vorinstalliert ist und sich anschließend mit wenigen Handgriffen einrichten lässt.

Alternativ installiert XAMPP einen flexiblen lokalen LAMP/MAMP/WAMP-Server auf Windows, Mac- und Linux-Systemen, auf dem Wordpress lokal aufgesetzt werden kann. Auf Windows und macOS bietet sich zudem MAMP als Alternative an. Nach der Übertragung von Dateien und Datenbank kann es auch schon losgehen.

Wordpress-Staging und GitHub verbinden

Der nächste Schritt ist, Wordpress mit Github zu verbinden. Dazu muss zunächst ein GitHub-Repository für das neue Wordpress-Projekt auf GitHub erstellt werden. Anschließend kann das Repository mithilfe der GitHub-App in den Theme- oder Plug-in-Ordner des lokalen Wordpress-Staging-Site geklont werden. Dadurch wird das Theme bei Github direkt mit der Staging-Site verbunden.

Ist das Theme oder Plug-in bereits so weit entwickelt, dass es funktioniert, kann es auch direkt in der lokalen Wordpress-Installation aktiviert werden. Die Entwicklung erfolgt innerhalb des Theme- oder Plug-in-Verzeichnisses von Wordpress, die Änderungen werden bei Commit und Push automatisch auf GitHub übertragen.

Entwicklung auf die Live-Site übertragen

Die anschließende Entwicklung ist „business as usual“: Die Theme- oder Plug-in-Dateien lassen sich ohne Weiteres bearbeiten und synchronisieren. Soll ein Entwicklungsstand auf die Live-Site auf dem Webserver übertragen werden, kann wahlweise das Repo als ZIP geladen und in Wordpress hochgeladen werden.

Einfacher ist es aber, wenn auf dem Webserver schon Git installiert ist: Mit seiner Hilfe kann das Repo ganz einfach per Kommandozeile mit dem Befehl …

git clone https://github.com/{name}/{reponame}.git

… aus dem Theme- oder Plug-in-Verzeichnis auf die Live-Site gezogen werden. Nach dem Live-Schalten läuft das Theme oder Plug-in mit dem aktuellen Entwicklungsstand auch auf der Live-Site.

Die Weiterentwicklung findet davon unbeeinflusst auf der Staging-Umgebung statt. Um den jeweils neuesten Stand auf die Live-Site zu übertragen genügt es, aus dem Plug-in- oder Theme-Verzeichnis heraus per Kommandozeile git pull auszuführen. Die Aktualisierung wird dann übertragen.

Lokal entwickeln und testen, schnell live schalten

Natürlich können mit dieser Vorgehensweise auch komplette Wordpress-Installationen lokal und remote über den Umweg eines GitHub-Repositorys gepflegt werden. Dazu muss das Repo nur auf die Hauptebene der Staging-Site verweisen. Das hat den Vorteil, dass sich auch Änderungen an Systemdateien des Themes niederschlagen – ideal für Entwickler, die vorhandene Lösungen anpassen und nicht selbst erstellen.

Wer seine Themes und Plug-ins nicht öffentlich auf GitHub sehen möchte, kann diese natürlich auch privat schalten. Insgesamt ergibt sich durch diesen GitHub-Workflow ein solides Entwicklungssystem, mit dessen Hilfe die Live-Site schnell aktualisiert werden kann.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Aktuellen Stand der Website regelmäßig in die lokale Staging-Umgebung ziehen

Um den jeweils aktuellen Stand der Wordpress-Installation, inklusive Datenbanken, in die Staging-Site zu ziehen, bietet sich BlogVault an: Das kostenpflichtige Plug-in zieht ein vollständiges Backup des jeweiligen Standes der Live-Site inklusive Datenbanken und spielt dieses auf Wunsch mithilfe seines Staging-Features automatisch in die Staging-Umgebung.

Entwicklerinnen und Entwickler können dadurch jederzeit auf den aktuellen Stand der Seite zugreifen, um Themes und Plug-ins passend zu entwickeln. Ganz nebenbei erhalten sie durch Einsatz von BlogVault natürlich auch eine zuverlässige Backup-Funktion.

(ID:47492144)