WP-CLI – Das Power-Tool, nicht nur für Nerds
CLI? Was ist das?
Ein Command Line Interface (deutsch: Kommandozeile) erinnert viele vielleicht an die Zeiten von DOS und Co., als es noch keine grafischen Benutzeroberflächen gab. Damals wurde alles über Befehle gesteuert, die über die Tastatur eingegeben werden mussten. Das war aber, zugegeben, vor meiner Zeit. Doch ein CLI ist auch heute noch genau das: ein textbasiertes Programm, mit dem man durch die Eingabe von Textbefehlen ein System steuern kann – gerade für Power-User echt hilfreich.
Server werden meistens nur über ein CLI verwaltet. Der Administrator meldet sich am Server an und kann dann über die Kommandozeile Verzeichnisse und Dateien bearbeiten, Dienste starten und alles Mögliche verwalten. Kein Wunder, dass das erstmal abschreckend ist. Als User muss ich die Befehle genau kennen und mich auch noch direkt auf dem Server anmelden. Aber wer sich einmal damit beschäftigt hat, weiß, wie schnell man nach kurzer Zeit mit dem CLI arbeiten kann und wie effizient Aufgaben so erledigt werden können. Und wer sich per SSH-Key am Server authentifiziert, muss für den Login nicht mal ein Passwort angeben.
Warum sollte ich das WP-CLI verwenden?
Das WP-CLI wurde 2011 gestartet und bietet einige Vorteile für erfahrene WordPress Nutzer und solche, die es werden wollen. Vieles was sich sonst nur mithilfe von Plugins oder viel Fleißarbeit umsetzen lässt, ist mit dem WP-CLI sehr einfach. Hier mal ein paar Beispiele, bei denen ich die Kommandozeile in meinem Alltag einsetze.
Plugin installieren und einrichten
Jeder hat bestimmt ein paar Standard-Plugins, die er in fast allen Installationen nutzt. Bei mir ist das zum Beispiel Imsanity, ein Plugin, das Bilder beim Hochladen automatisch kleiner skaliert. Will ich Imsanity über das WordPress Dashboard installieren, muss ich erst auf die Plugin-Seite navigieren, danach Hinzufügen klicken und suchen. Es folgt Installieren und aktivieren. Nun gehe ich auf die Einstellungsseite, passe alle Werte an und speichere. Mit der WP-CLI sieht das so aus: Per SSH anmelden, ins Verzeichnis wechseln, mein fertiges Befehlsset ausführen – fertig! Keine 20 Sekunden Arbeit und erst recht keine nervigen Seiten-Ladezeiten zwischendrin.
# Plugin installieren und direkt aktivieren
wp plugin install imsanity --activate
# Optionen setzen
wp option update imsanity_max_height 1920
wp option update imsanity_max_width 2560
wp option update imsanity_max_height_library 1920
wp option update imsanity_max_width_library 2560
wp option update imsanity_max_height_other 1920
wp option update imsanity_max_width_other 2560
Genauso schnell – oder sogar schneller – geht es, wenn ich mehrere Plugins gleichzeitig installieren möchte: Beispiel Contact Form 7 mit ein paar Add-Ons:
# 3 Plugins auf einmal installieren und aktivieren
wp plugin install contact-form-7 bootstrap-for-contact-form-7 contact-form-7-honeypot --activate
Jetzt aber mal reinfolgen!
Abonniere Tipps für CMS und Dev-Tools, Hosting Hacks und den ein oder anderen Gag. Unsere schnellen Takes für dich per E-Mail.
Funktionen ohne Plugins nutzen
Im WP-CLI sind einige Funktionen implementiert, für die ihr ohne das CLI Plugins installieren müsste. Gerade wenn ihr diese Funktionen nur selten nutzt, lohnt es sich aus meiner Sicht nicht, ein Plugin im System zu haben, das regelmäßig aktualisiert werden muss, potenziell alles verlangsamt und Sicherheitslücken einführen kann. Und wenn es mit der CLI genauso geht, warum nicht?
Soll ein Nutzer eine zusätzliche Berechtigung bekommen, die seine Rolle eigentlich nicht hat (z. B. soll ein Redakteur auch Menüs und Widgets bearbeiten), habe ich euch schon im Beitrag zu den Nutzerrollen gezeigt, wie einfach das geht:
# Dem Nutzer mit der ID 2 die Fähigkeit edit_theme_options zuteilen
wp user add-cap 2 edit_theme_options
Ohne Plugin, ohne viel Aufwand.
Hier noch ein paar weitere Beispiele, für Aufgaben, wegen denen ich früher immer ein Plugin installiert habe:
# Nach Änderung der Medien-Größen die Vorschaubilder neu generieren:
wp media regenerate --yes
# Ein zu großes Video vom Dateisystem in die Mediathek importieren:
wp media import ~/html/wordpress/wp-content/large-video.mp4
# Suchen und Ersetzen in allen Datenbanktabellen:
wp search-replace 'http://example.test' 'https://example.com'
# Beliebige Anzahl Nutzer aus einer Tabelle importieren
wp user import-csv ~/files/users.csv
# Viele Beiträge generieren um meine Archiv-Seiten zu testen:
wp post generate --count=42 --post_type=post
Automatisierungen
CLI-Befehle lassen sich einfach in ein .sh-Skript ablegen und dann ausführen. So lässt sich zum Beispiel nur mit CLI-Befehlen ein kleines Backup- und Update-Skript schreiben. Das ist praktisch für alle, die die seit WP 5.5 verfügbaren Auto-Updates nicht nutzen möchten und vor jedem Update gerne ein frisches Datenbank-Backup hätten.
wp db export
wp core update
wp core update-db
wp language core update
wp plugin update --all
wp language plugin update --all
wp theme update --all
wp language theme update --all
Wenn ich mir diese Befehle jetzt in eine Datei wp-update.sh speichere, kann ich sie einfach mit ./wp-update.sh jederzeit ausführen.
WP-CLI Verwendung in der Praxis
Für den schnellen Einstieg solltet ihr euch natürlich mit den Grundzügen einer CLI auskennen. Wie ihr euch einen SSH-Key erstellt und euch mit diesem am Server authentifiziert habe ich euch an anderer Stelle schon erklärt. Seid ihr dann auf dem Server, braucht es, wie oben gesagt, nur noch einen Schritt und es kann losgehen.
Bei mir sieht das im Alltag dann so aus:
# mit SSH am Server für meine Dev-Umgebung anmelden:
ssh wp-dev
# ab jetzt bin ich auf dem Server
# in das Verzeichnis meiner WP-Installation wechseln (change directory)
cd html/wordpress
# und schon kann’s losgehen
wp core check-update
Installiert ihr WordPress über den Softwaremanager von Mittwald wird das WP-CLI übrigens automatisch mit installiert. Aber auch, wenn ihr WordPress manuell installiert habt, könnt ihr über den Softwaremanager das WP-CLI jederzeit nachinstallieren.
Die Dokumentation zur Installation in eurer lokalen Umgebung findet ihr unter wp-cli.org. Die Dokumentation für alle Befehle gibt es im WordPress Developer-Bereich.
Fazit
Für mich ist das WP-CLI ein super Tool, mit dem ich viele Aufgaben in meinem Alltag schneller und besser erledigen kann. Nach einer kurzen Eingewöhnung in das Arbeiten mit der Kommandozeile macht es richtig Spaß und man lernt es zu schätzen. Nutzt ihr das WP-CLI schon? Für welche Aufgaben? Wenn nicht, was hält euch davon ab?
Kommentare
Das mit dem SSH Key hat mir sehr weiter geholfen. Jetzt klappt es. Meine Webseite wird nun als Sicher dargestellt. Tausend Dank !