WP-CLI: WordPress einfach auf der Kommandozeile verwalten

Philipp Zeder
Autor:

Philipp Zeder

Kategorie:

in

CMS & Co.

Veröffentlicht am 21. Jan. 2016

Aktualisiert am 10. Sept. 2024

WP-CLI steht für «WordPress Command Line Interface». Mit dem Open-Source-Tool lässt sich eine WordPress-Installation komplett über die Kommandozeile verwalten. Das beginnt bei der Installation einer neuen WordPress-Website und hört dort noch lange nicht auf.

Wir zeigen Ihnen heute die Basics für das praktische Werkzeug. Erfahren Sie, wie man mit WP-CLI per Shell eine neue WordPress-Installation aufsetzt, WordPress aktualisiert, Plugins installiert oder Beiträge bearbeitet.

Mit WP-CLI WordPress einfach auf der Kommandozeile verwalten.

Mit WP-CLI WordPress einfach auf der Kommandozeile verwalten.

Sie nennen mehrere WordPress-Installationen Ihr Eigen? Dann kann Ihnen WP-CLI das Leben ungemein erleichtern. Mit WP-CLI lassen sich problemlos hunderte Installationen gleichzeitig vom eigenen Rechner aus verwalten, ohne dass Sie sich in jede einzelne Installation einloggen müssten. Ausserdem lässt sich WP-CLI mit Scripts erweitern und so zusätzlich automatisieren.

Voraussetzung SSH

Damit Sie WP-CLI nutzen können, muss Ihr Webhosting per SSH erreichbar sein. Ausserdem sollten Sie ein wenig mit der Arbeit auf der Konsole vertraut sein, da Änderungen in den meisten Fällen nicht rückgängig gemacht werden können.

Tipp: Alle unsere Angebote enthalten einen SSH-Zugang. In unserem Blogpost SSH: Ein mächtiges Werkzeug für Ihr Webhosting lernen Sie den Umgang mit der Kommandozeile.

Übersicht

WP-CLI bietet eine Menge Funktionen. Wir haben die wichtigsten für Sie zusammengetragen:

WP-CLI installieren

Damit WP-CLI genutzt werden kann, muss das Tool zuerst installiert werden. Dies lässt sich in wenigen Schritten erledigen. Wir empfehlen die folgende Methode:

Verbinden Sie sich als erstes per SSH zu Ihrem Webhosting und wechseln Sie mit dem Befehl cd ~ ins Home-Verzeichnis. Laden Sie dann WP-CLI auf Ihr Webhosting:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Damit WP-CLI überall in Ihrer SSH-Session ausführbar ist, verschieben Sie das Programm ins Verzeichnis bin. Besteht das Verzeichnis noch nicht, legen Sie es mit dem Befehl mkdir bin an. Mit mv wp-cli.phar bin/wp verschieben Sie die Datei und benennen sie gleichzeitig in wp um. So ist das Programm später unter dem Befehl wp ansprechbar. Schlussendlich machen Sie die Datei mit chmod u+x bin/wp ausführbar.

Prüfen Sie nun mit wp --info, ob das Tool erfolgreich installiert wurde.

Sieht die Ausgabe etwa so aus, dann hat alles funktioniert:

PHP binary:     /opt/cyon/php55/usr/bin/php
PHP version:    5.5.30
php.ini used:   /opt/cyon/php55/etc/php-cli.ini
WP-CLI root dir:        phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.21.1

Erhalten Sie die Meldung -bash: wp: command not found ist das Verzeichnis bin nicht in der PATH-Variable hinterlegt. Erweitern Sie in diesem Fall die Datei .bash-profile mit folgenden beiden Zeilen:

PATH=$PATH:$HOME/bin
export PATH

WP-CLI steht jetzt unter dem Befehl wp zur Verfügung.

Tab-Completion hinzufügen

Wer oft in einer Konsole arbeitet, schätzt die Funktion Tab-Completion. Mit der Tabulatortaste vervollständigt der Computer eingetippte Befehle automatisch oder liefert eine Liste mit Optionen, wenn mehrere Möglichkeiten zur Verfügung stehen. Mit Tab-Completion arbeitet es sich nicht nur schneller, sie verhindert auch Tippfehler. Natürlich lässt sich WP-CLI ebenfalls mit einer Tab-Completion erweitern.

Installieren Sie die Funktion wie folgt ins Verzeichnis ~/.wp-cli:

Erstellen Sie das Verzeichnis mit mkdir ~/.wp-cli und wechseln Sie mit cd ~/.wp-cli in den soeben erstellten Ordner. Laden Sie mit

curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash

das passende Script herunter.

Fügen Sie die Funktion mit echo "source ~/.wp-cli/wp-completion.bash" >> ~/.bash_profile Ihrer .bash_profile hinzu. Damit die neue Konfiguration geladen wird, führen Sie source ~/.bash_profile aus.

Hat alles wie gewünscht funktioniert, liefert wp <TAB><TAB> eine Liste mit Optionen, die WP-CLI bietet.

WordPress installieren

Mit WP-CLI lässt sich WordPress (fast) ohne Browser installieren und die WordPress-Konfigurationsdatei direkt auf dem Webhosting generieren.

Als erstes muss die gewünschte Domain via my.cyon eingerichtet werden. Merken Sie sich das Zielverzeichnis der Domain, Sie benötigen es später wieder.

WordPress setzt ausserdem eine Datenbank voraus, welche Sie ebenfalls vorgängig im my.cyon-Konto erstellen. Der Datenbankname, -Benutzer und dessen Passwort werden später benötigt, um die Konfiguration auf dem Webhosting zu erstellen. Dann kann es mit WP-CLI losgehen.

Verbinden Sie sich mit dem Befehl ssh oliver@oliverorange.ch zum Webhosting. oliver@oliverorange.ch ersetzen Sie in diesem Fall mit Ihrem SSH-Benutzernamen.

Wechseln Sie mit cd ~/public_html/<installationspfad> in das Verzeichnis, das Sie zuvor für die gewünschte Domain definiert haben und laden Sie mit wp core download die aktuellste WordPress-Version auf Ihr Webhosting. Mit dem Parameter --version={Versionsnummer} lässt sich die WordPress-Version spezifizieren, falls gewünscht.

Jetzt befindet sich WordPress auf dem Webhosting und ist bereit für die Konfiguration. Der folgende Befehl erstellt die Datei wp-config.php:

wp core config --dbname={Datenbankname} --dbuser={Datenbankbenutzer} --dbpass={Passwort Datenbankbenutzer}

Ersetzen Sie dabei {Datenbankname}, {Datenbankbenutzer} und {Passwort Datenbankbenutzer} mit den Daten aus Ihrem my.cyon-Konto.

Anschliessend kann die Installation mit wp core install und den folgenden Parametern abgeschlossen werden:

  • url: Die Domain unter welcher WordPress erreichbar ist
  • title: Titel der Website
  • admin_user: Benutzername, mit welchem Sie sich ins Backend von WordPress einloggen
  • admin_password: Passwort für den Benutzer
  • admin_email: E-Mail-Adresse des Benutzers

Im Endeffekt sieht der benötigte Befehl folgendermassen aus:

wp core install --url={Ihre Domain} --title={Titel der Website} --admin_user={Benutzernamen} --admin_password={Passwort für Benutzer} --admin_email={E-Mailadresse}

Hat alles geklappt, meldet WP-CLI Success: WordPress installed successfully. und WordPress ist unter der konfigurierten Domain erreichbar.

Plugins installieren

Nebst dem WordPress-Core lassen sich mit WP-CLI auch Plugins komfortabel auf der Kommandozeile installieren. Wenn Sie nicht sicher sind, wie ein gewünschtes Plugin genau heisst, dann können Sie mit dem Befehl wp plugin search <Suchbegriff> in der Plugin-Datenbank suchen. Wir möchten in diesem Fall das beliebte SEO-Plugin von Yoast installieren. Mit wp plugin search yoast ist das Plugin schnell gefunden.

Success: Showing 10 of 280 plugins.
+---------------------------+----------------+--------+
| name                      | slug           | rating |
+---------------------------+----------------+--------+
| Yoast SEO                 | wordpress-seo  | 82     |
…

Merken Sie sich den «Slug» in der zweiten Spalte, der in diesem Fall wordpress-seo heisst.

Mit wp plugin install wordpress-seo ist das Plugin dann auch schon installiert, jedoch noch inaktiv.

Der Befehl wp plugin list fördert eine übersichtliche Tabelle mit allen installierten Plugins und deren Status zu Tage:

+----------------------+----------+-----------+---------+
| name                 | status   | update    | version |
+----------------------+----------+-----------+---------+
| akismet              | active   | none      | 3.1.7   |
| hello                | inactive | none      | 1.6     |
| wordpress-seo        | inactive | none      | 3.0.7   |
+----------------------+----------+-----------+---------+

Mit wp plugin activate wordpress-seo aktivieren Sie das soeben installierte Plugin.

Posts erstellen und bearbeiten

Nicht nur WordPress-Core und Plugins lassen sich mit WP-CLI installieren. Auch Posts können direkt auf der Kommandozeile erstellt und bearbeitet werden.

wp post create --post_status=publish --post_title="Erster Post von der CLI" --edit

erstellt einen neuen Post mit dem Titel «Erster Post von der CLI», publiziert ihn und öffnet automatisch den in der Shell definierten Editor, um den Post zu bearbeiten.

Eine Liste aller Posts generieren Sie mit wp post list. Die Liste enthält unter anderem die ID jedes Posts, mit der Sie gewünschte Posts über WP-CLI ansteuern können.

Der Befehl wp post edit 7 öffnet den Post mit der ID 7 im konfigurierten Editor (in unserem Fall vim).

Medien bearbeiten

Eine grosse Anzahl Medien wie Bilder lassen Sich in WordPress über das Webinterface nur mühsam bearbeiten. Mit WP-CLI bearbeiten Sie problemlos mehrere Bilder auf einen Schlag. So können Sie zum Beispiel mit dem Befehl wp media regenerate die Thumbnails sämtlicher Bilder neu generieren lassen.

Wenn Sie eine grosse Menge an Bildern in WordPress importieren möchten, bietet sich der folgende Befehl an: wp media import <Ordnername>. Er bewirkt, dass alle Dateien im angegebenen Ordner importiert werden.

WordPress aktualisieren

Eine WordPress-Installation will gewartet sein. Mit Hilfe von WP-CLI lässt sich eine Installation kinderleicht aktualisieren.
Die folgenden beiden Befehle aktualisieren die Installation und deren Datenbank:
wp core update
wp core update-db

Auch Plugins und Themes können mit jeweils einem Befehl auf den aktuellsten Stand gebracht werden:
wp plugin update --all
wp theme update --all

Die oben genannten Beispiele müssen jeweils pro Installation durchgeführt werden. Noch effizienter wäre es, wenn dies für alle WordPress-Installationen auf dem gleichen Server mit einem Script erledigt werden könnte. Das lässt sich mit diesem kleinen Bash-Script realisieren:

#!/bin/bash
declare -a sites=('/home/<account>/public_html/site1' '/home/<account>/public_html/site2' '/home/<account>/public_html/site3')
for site in "${sites[@]}";
do
    wp --path=$site core update
done

Tipp: Vor Updates empfiehlt es sich, ein Backup der Datenbank zu erstellen. Selbstverständlich lässt sich auch diese Aufgabe problemlos mit WP-CLI lösen.
wp db export backup.sql exportiert die Datenbank in die Datei backup.sql

Datenbankabfragen

Nicht nur Datenbankexporte lassen sich mit WP-CLI anfertigen. Auch der Import vonSQL-Dateien ist möglich. Der Befehl wp db import backup.sql importiert die Datei backup.sql und anschliessend lässt sich die Datenbank mit wp db optimize optimieren. Selbst Datenbankabfragen sind möglich. wp db query "SELECT id FROM wp_users;" gibt zum Beispiel alle User-IDs zurück.

Search & Replace

Um Zeichenketten zu suchen und zu ersetzen, kann man sich mit Plugins, Tools wie phpMyAdmin oder dem Absetzen von SQL-Befehlen behelfen. Natürlich hat WP-CLI auch für diese Aufgabe den passenden Befehl parat. Wenn die Entwicklung Ihrer WordPress-Website auf einem anderen Server stattgefunden hat, dann müssen nach dem Deployment auf dem produktiven Server die URLs angepasst werden. Oder Sie aktivieren ein SSL-Zertifikat und möchten alle URLs umschreiben, um Mixed Content zu verhindern. Mit folgendem Befehl ist diese Aufgabe in einem Schritt erledigt:

wp search-replace 'http://oliverorange.ch' 'https://oliverorange.ch'

Um eine Liste mit allen betroffenen Tabellen und Spalten zu erhalten, geben Sie einfach --dry-run als Parameter mit:

wp search-replace --dry-run 'http://oliverorange.ch' 'https://oliverorange.ch'

Integrierte Hilfe

Sie sehen also, WP-CLI ist mächtig. Zum Glück lässt sich für jeden möglichen Befehl eine Beschreibung anzeigen. Mit wp help <befehl> lässt sich der Hilfetext für den gewünschten Befehl aufrufen. So gibt wp help plugin die Möglichkeiten aus, die für das Kommando plugin bereitstehen:

NAME

  wp plugin

DESCRIPTION

  Manage plugins.

SYNOPSIS

  wp plugin <command>

SUBCOMMANDS

  activate          Activate a plugin.
  deactivate        Deactivate a plugin.
  delete            Delete plugin files.
  get               Get a plugin.
  install           Install a plugin.

...

Sämtliche Hilfetexte finden Sie ausserdem auf der Website von WP-CLI: wp-cli.org/commands.

Sackmesser unter den WordPress-Tools

WP-CLI kann einen grossen Mehrwert bringen, wenn gleich mehrere WordPress-Installationen verwaltet werden müssen. Ausserdem lassen sich mit dem Tool mühsame und sich oft wiederholende Aufgaben bequem mit einem Script automatisieren. WP-CLI bietet bereits eine mächtige Grundausstattung an möglichen Befehlen und lässt sich zusätzlich mit eigenen Befehlen erweitern. Nicht zuletzt können Funktionen wie wp search-replace sogar ganze Plugins ersetzen.

Wenn Sie noch mehr zu WP-CLI erfahren möchten, empfehlen wir Ihnen diese Websites:

Beteilige dich an der Diskussion

10 Kommentare

Tim Bischoff
Tim Bischoff 24. Feb. 2020 12:45

Sehr vielen Dank für die sehr gute Anleitung!

Was mir nur aufgefallen ist, dass man Eure automatisch generierten Datenbankpasswörter escapen oder die Sonderzeichen rausnehmen muss, weil dies sonst zu Fehlern führt.

Tom Brühwiler
Tom Brühwiler cyon
4. März 2020 15:45

Wir haben inzwischen unsere Anleitung entsprechend ergänzt bzw. angepasst. Danke Dir nochmals für den Hinweis!

Tom Brühwiler
Tom Brühwiler cyon
24. Feb. 2020 15:36

Danke für den Hinweis, Tim. Wir werfen da nochmal einen Blick darauf.

Matthias
Matthias 22. Mai 2016 20:36

Cooles Plugin, wusste gar nicht, dass es Möglichkeit WordPress per Kommandozeile zu verwalten!
Zum Glück habe ich einen Hoster gewählt, der auch einen SSH-Zugang ermöglicht, das macht die Wahl noch viel besser :))

Bättig
Bättig 14. Feb. 2016 14:46

Hallo

Möchte gerne auf CMS oder WP umsteigen. Scheue immer noch ein bisschen.
Habe gesehen bei WP ist ein Tools MotoCMS für Verarbeitung vorhanden (natürlich kostenpflichtig). So was wünsche ich mir – Drag&Drop System.
Gibt es ein Tipp auch günstigere oder die ich selber installieren mittels Plug-in machen kann.
Thanks

Philipp Zeder
Philipp Zeder cyon
15. Feb. 2016 14:02

Für WordPress gibt es einige Drag&Drop-Themes. Eines, das einen guten Eindruck zu machen scheint, wäre «Make». In der Grundversion ist das Theme kostenlos: https://de.wordpress.org/themes/make/

Marcel
Marcel 2. Feb. 2016 13:46

Vielen vielen Dank für diesen Beitrag!
– M

Roman
Roman 2. Feb. 2016 13:23

Sehr cooles Tool, vielen Dank für die schöne Anleitung!

Silvan
Silvan 22. Jan. 2016 16:05

Vielen Dank für die praktische Anleitung, da wir meistens ebenfalls Composer verwenden, habe ich die Infos zusammengefasst in einem Gist. Hier die Anleitung wie man Composer und WP-CLI + Tab-Completion bei euch einrichtet: https://gist.github.com/neverything/851778304fd730b468fe

Philipp Zeder
Philipp Zeder cyon
22. Jan. 2016 16:11

Sehr cool, herzlichen Dank.