Bei der täglichen Arbeit mit WordPress fallen sich wiederholende, oftmals lästige Aufgaben an. Um Zeitaufwand und Fehleranfälligkeit zu minimieren, können diese Dinge mittels WP-CLI (Command-Line Interface für WordPress) in der Kommandozeile erledigt werden. Mehre Aufgaben lassen sich in Shell-Skripten bündeln, so dass man auch aufeinander aufbauende Aufgaben mit einfachen Befehlen automatisiert durchführen kann. Das möchten wir euch beispielhaft an der Einrichtung einer neuen WordPress-Instanz zeigen.

WordPress mit WP-CLI pflegen

WP-CLI ist ein Kommandozeilenwerkzeug für WordPress. Ihr könnt damit jede administrative Aufgabe verrichten, die ihr üblicherweise im Dashboard erledigt, ohne einen Webbrowser zu verwenden. Sobald WP-CLI auf eurem Rechner installiert ist, stehen euch diverse Befehle zur Verfügung, mit denen ihr WordPress installieren, konfigurieren und aktualisieren sowie Plugins pflegen, Beiträge bearbeiten und andere wiederkehrende Aufgaben erledigen könnt.

Ob WP-CLI bei euch richtig eingerichtet ist, könnt ihr mit dem Ausführen von wp –-info prüfen. Das Tool zeigt euch dann diverse Infos zu eurem System. Aktualisieren könnt ihr das Tool jederzeit, indem ihr ein wp cli update ausführt.

Anhand der Einrichtung einer neuen WordPress-Instanz lässt sich das grundlegende Prinzip des Tools gut beschreiben.

Installation von WordPress mit WP-CLI

Für eine Neuinstallation muss WordPress zunächst heruntergeladen werden. Wechselt dazu im Terminal in das Verzeichnis, in dem ihr die neue Instanz einrichten wollt und ladet dann mit wp core download die aktuelle Version herunter. Mit den Indikatoren --version und --locale können auch Angaben zu spezifischen Versionen und Sprachvarianten gemacht werden. Mit dieser Eingabe erhaltet ihr zum Beispiel eine deutschsprachige Installation:

wp core download --locale=de_DE

Als nächstes könnt ihr mit wp core config erforderliche Konfigurationen vornehmen. Mit den Parametern --dbname, --dbuser und --dbpass werden die unbedingt benötigten Angaben zu Datenbankname, -user und -passwort gemacht. Auch der Tabellenpräfix kann mit --dbprefix bestimmt werden. Zusätzliche Informationen, wie etwa die Definition einer Umgebungskonstanten WP_ENVIRONMENT_TYPE, können unter Verwendung von --extra-php hinterlegt werden. Dieses Kommando erzeugt die Datei wp-config.php und füllt diese mit euren Angaben:

wp core config --dbname=datenbank --dbprefix=pre_ --dbuser=kulturbanause --dbpass=passwort --extra-php="define('WP_ENVIRONMENT_TYPE', 'local');"

Im nächsten Schritt erstellt ihr die benötigte Datenbank:

wp db create

Anschließend könnt ihr mit wp core install die eigentliche Installation anstoßen. Mit den Parametern --url und --title wird dabei Adresse und Titel der Website bestimmt. Angaben zum Administrator erfolgen mit --admin_user, --admin_password und --admin_email. Mit diesem Befehl wird WordPress eingerichtet und die Installation abgeschlossen:

wp core install --url=https://kulturbanuse.kb --title="WordPress mit WP-CLI" --admin_user=kulturbanause --admin_password=passwort --admin_email=test@domain.de

Nach Abschluss der Installation meldet WP-CLI Success: WordPress installed successfully. Die neue WP-Instanz ist dann unter der konfigurierten Adresse erreichbar.

Shell-Skript für die Einrichtung einer neuen WordPress-Instanz

Um Prozesse zu vereinfachen, die eine Abfolge von mehreren Befehlen in der Kommandozeile benötigen, können Shell-Skripte sehr hilfreich sein. In diesen können ganze Befehlssequenzen zusammengefasst werden, so dass die Eingabe eines einzigen Kommandos (typischweise der Dateiname) eine ganze Befehlsfolge einleitet.

Auf diese Weise lassen sich die oben beschriebenen Kommandos bündeln, so dass wir die berühmte 5-Minuten-Installation von WordPress z. Bsp. mit dem Befehl wpinstall verfügbar machen können. Dazu erstellt ihr eine Datei wpinstall und schreibt #!/bin/bash in Zeile 1. In den folgende Zeilen könnt ihr dann die benötigten WP-CLI-Kommandos eintragen. Das einfache Skript sieht dann so aus:

#!/bin/bash
wp core download --locale=de_DE
wp core config --dbname=datenbank --dbprefix=pre_ --dbuser=kulturbanause --dbpass=passwort --extra-php="define('WP_ENVIRONMENT_TYPE', 'local');"
wp db create
wp core install --url=https://kulturbanuse.kb --title="WordPress mit WP-CLI" --admin_user=kulturbanause --admin_password=passwort --admin_email=test@domain.de

In der Kommandozeile könnt ihr dann den Befehl wpinstall benutzen.

Achtung! Die Skript-Datei muss unbedingt ausführbar und in einem Verzeichnis hinterlegt sein, auf das die von euch benutzte Shell Zugriff hat!

Durch die fest eingetragenen Angaben für Datenbank und Website ist das Skript so aber nicht sehr brauchbar. Universell einsetzbar wird das Ganze erst, wenn ihr interaktive Abfragen für die flexiblen Angaben, wie Website-Titel und -Host sowie Datenbank-Name und -Präfix, integriert:

#!/bin/bash

# Setup an new WP instance
echo "Start WordPress setup …"

# Get setup infos
read -p "Website title: " WP_TITLE
read -p "Website host: " WP_HOST
read -p "Database name: " DB_NAME
read -p "Database prefix: " DB_PREFIX

# Run the installation
wp core download --locale=de_DE
wp core config --dbname="$DB_NAME" --dbprefix="$DB_PREFIX" --dbuser=kulturbanause --dbpass=passwort --extra-php="define('WP_ENVIRONMENT_TYPE', 'local');"
wp db create
wp core install --url="https://${WP_HOST}" --title="${WP_TITLE}" --admin_user=kulturbanause --admin_password=passwort --admin_email=test@domain.de

Einen echten Mehrwert könnt ihr erzielen, wenn ihr dann noch zusätzliche Aufgaben automatisiert. So könnt ihr z. Bsp. alle Posts, Pages, Plugins und inaktiven Themes löschen, die WordPress standardmäßig mitbringt oder die Permalink-Struktur in eine gewünschte Form bringen.

COD#!/bin/bash

# Setup an new WP instance
echo "Start WordPress setup …"

# Get setup infos
read -p "Website title: " WP_TITLE
read -p "Website host: " WP_HOST
read -p "Database name: " DB_NAME
read -p "Database prefix: " DB_PREFIX

# Run the installation
wp core download --locale=de_DE
wp core config --dbname="$DB_NAME" --dbprefix="$DB_PREFIX" --dbuser=dbadmin --dbpass=dbpw --extra-php="define( 'WP_ENVIRONMENT_TYPE', 'local' );"
wp db create
wp core install --url="https://${WP_HOST}" --title="${WP_TITLE}" --admin_user=kulturbanause --admin_password=passwort --admin_email=test@domain.de

# Remove posts, pages, plugins and inactive themes
wp theme delete $(wp theme list --status=inactive --field=name)
wp plugin delete --all
wp post delete $(wp post list --post_type='page' --format=ids) --force
wp post delete $(wp post list --post_type='post' --format=ids) --force

# Rewrite permalink structure
wp rewrite structure '/%postname%/' --hard
wp rewrite flush --hard

Das Skript lässt sich beliebig abändern und erweitern, so dass ihr euch damit euren idealen Installations-Prozess für WordPress erstellen könnt.

Geschrieben von Konstantin Hanke

Benutzerbild

Konstantin arbeitet als Webentwickler bei kulturbanause. Seine Hauptaufgabe ist die technische Umsetzung von klaren, soliden und effizienten Webauftritten und Website-Komponenten. Darüber hinaus kümmert er sich um die Wartung, Optimierung und Weiterentwicklung von bestehenden Websites. Sein besonderes Interesse gilt der Idee von quelloffener, freier Software.

Feedback & Ergänzungen – Schreibe einen Kommentar

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →