WP-CLI ist die offizielle Kommandozeile für WordPress. Statt sich durch wp-admin zu klicken, tippen Sie Befehle in ein Terminal auf dem Server: wp core update aktualisiert WordPress, wp plugin update --all aktualisiert jedes Plugin, wp db export sichert die Datenbank, wp search-replace tauscht eine Domain in der ganzen Website aus, ohne serialisierte Daten zu zerstören. Das Projekt wurde 2011 von Andrés Cifuentes und Cristi Burcă gestartet, wird heute als offizielles WordPress.org-Projekt gepflegt und ist zum Standardwerkzeug hinter professioneller WordPress-Wartung, Hosting-Automatisierung und Deployment-Pipelines geworden. Das praktische Argument ist simpel: Alles, was wp-admin kann, kann WP-CLI schneller, dazu eine lange Liste von Dingen, die wp-admin überhaupt nicht kann, etwa Core-Dateien nach einem vermuteten Hack gegen offizielle Prüfsummen abzugleichen, eine Website zu reparieren, deren Adminbereich wegen eines Fatal Error unerreichbar ist, oder dasselbe Wartungsskript über fünfzig Websites laufen zu lassen, bevor der Kaffee kalt wird.
Was ist WP-CLI und wer pflegt es?
WP-CLI ist eine PHP-Anwendung, die WordPress im Terminal lädt und dessen Funktionen als Befehle bereitstellt. Weil sie die tatsächliche WordPress-Installation startet, arbeitet sie mit Ihren echten Daten, Ihren installierten Plugins und Ihrer Konfiguration, nicht mit einer Simulation davon. Das Projekt lebt auf wp-cli.org und auf GitHub, Releases werden mit dem WordPress-Projekt abgestimmt, und die Befehlsreferenz im WordPress-Entwicklerhandbuch dokumentiert jeden eingebauten Befehl.
Die Voraussetzungen sind überschaubar: SSH-Zugang zum Server, PHP auf der Kommandozeile und eine UNIX-artige Umgebung (Linux, macOS oder Windows via WSL). Die erste Voraussetzung ist der einzige echte Türsteher. Auf Shared Hosting ohne SSH-Zugang können Sie WP-CLI nicht nutzen, während die meisten Managed-WordPress-Hoster es nicht nur erlauben, sondern vorinstallieren.
WP-CLI installieren
Bevor Sie irgendetwas installieren, prüfen Sie, ob es schon da ist. Bei vielen Hostern beantwortet ein wp --info in einer SSH-Sitzung die Frage. Falls nicht, ist die Installation eine Zwei-Minuten-Sache, denn WP-CLI kommt als einzelne Phar-Datei:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# Installation prüfen
wp --infoFür die lokale Entwicklung brauchen Sie es selten von Hand zu installieren, da Local, DDEV, Lando und das offizielle wp-env WP-CLI alle mitbringen. Einmal installiert, werden Befehle aus dem WordPress-Wurzelverzeichnis ausgeführt oder von überall mit dem Schalter --path, der auf die Installation zeigt.
Die wichtigsten WP-CLI-Befehle für den Alltag
Der Befehlsaufbau ist immer wp, ein Thema, ein Unterbefehl und Optionen. Ein Rundgang durch die, die den größten Teil der echten Wartung tragen:
# Core: prüfen, aktualisieren, verifizieren
wp core version
wp core update
wp core verify-checksums
# Plugins: auflisten, installieren, alles aktualisieren
wp plugin list
wp plugin install wordpress-seo --activate
wp plugin update --all
# Themes funktionieren genauso
wp theme list
wp theme update --all
# Benutzer: anlegen, auflisten, Passwort zurücksetzen
wp user list
wp user create anna anna@example.com --role=editor
wp user update admin --user_pass="neues-starkes-passwort"
# Datenbank: exportieren, bevor Sie irgendetwas anfassen
wp db export backup-$(date +%F).sql
wp db size --human-readableZwei Details machen die Auflistungsbefehle nützlicher, als sie aussehen. Jede Liste akzeptiert Filter und Ausgabeformate, wp plugin list --update=available --format=csv liefert Ihnen also einen maschinenlesbaren Bericht über ausstehende Updates. Und wp core verify-checksums vergleicht jede Core-Datei mit den offiziellen Prüfsummen von WordPress.org, was aus der vagen Frage, ob jemand meine Core-Dateien verändert hat, in fünf Sekunden ein Ja oder Nein macht. Es ist einer der ersten Befehle, die sich auf jeder Website lohnen, bei der Sie eine Kompromittierung vermuten.
Search-replace: der Befehl, der den Aufwand bezahlt
Die eine Funktion, die die meisten Skeptiker überzeugt, ist wp search-replace. Eine Domain ändern, von Staging nach Produktion umziehen oder auf HTTPS wechseln, all das verlangt, URLs in der gesamten Datenbank zu ersetzen. Mit rohem SQL zerlegt das WordPress, weil Themes, Plugins und Widgets ihre Einstellungen als serialisierte PHP-Daten speichern, in denen jeder Zeichenkette ihre Länge vorangestellt ist. Ersetzen Sie per SQL http durch https in einer serialisierten Zeichenkette, passt die gespeicherte Länge nicht mehr, und WordPress verwirft die ganze Einstellung stillschweigend. WP-CLI deserialisiert die Daten, ersetzt den Wert, serialisiert ihn mit korrekten Längen neu und schreibt ihn zurück:
# Zuerst der Trockenlauf: zeigt, was sich ändern würde, ändert nichts
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run
# Der echte Durchlauf, mit Bericht pro Tabelle
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --report-changed-onlyDer Schalter --dry-run verdient einen festen Platz in Ihrem Muskelgedächtnis. Er beantwortet, was passieren würde, bevor irgendetwas passiert, und ist damit genau die Rückfrage, die der Rest von WP-CLI nicht hat.
WP-CLI für Wartung und Fehlersuche
Eine Handvoll Befehle löst Probleme, die im Browser aufrichtig schmerzhaft sind:
- Kaputter Adminbereich nach einem Update. Ein Fatal Error in einem Plugin kann Sie komplett aus wp-admin aussperren. wp plugin deactivate broken-plugin funktioniert trotzdem, weil WP-CLI die Adminoberfläche nicht rendern muss.
- Cron inspizieren. wp cron event list zeigt jede geplante Aufgabe mit ihrer nächsten Laufzeit, und wp cron event run --due-now führt überfällige aus. Den Pseudo-Cron von WordPress ohne das zu debuggen, ist Raterei.
- Transients aufräumen. wp transient delete --expired entfernt abgelaufene Transients, die auf älteren Websites die Options-Tabelle aufblähen.
- Cache leeren. wp cache flush leert den Objekt-Cache, nützlich nach Deployments, wenn Redis oder Memcached veraltete Daten ausliefert.
- Rewrite-Regeln. wp rewrite flush behebt das klassische 404-nach-Migration-Symptom, ohne die Permalink-Einstellungen zu öffnen.
WordPress mit WP-CLI-Skripten und Aliassen automatisieren
Weil jeder Befehl skriptfähig ist, verwandelt WP-CLI wiederkehrende Wartung in Dateien statt in Erinnerungen. Eine wöchentliche Update-Routine wird zu einem kurzen Shell-Skript: Datenbank exportieren, Core, Plugins und Themes aktualisieren, Prüfsummen verifizieren, fertig. Dasselbe Skript läuft aus einem Cronjob oder einer CI-Pipeline, und eine Schleife über eine Liste von Installationspfaden wartet ein ganzes Portfolio an Websites.
#!/bin/bash
# Minimale wöchentliche Wartung für eine Website
wp db export ~/backups/backup-$(date +%F).sql
wp core update
wp plugin update --all
wp theme update --all
wp core verify-checksumsFür die Arbeit über Umgebungen hinweg unterstützt WP-CLI Aliasse in einer Datei wp-cli.yml. Definieren Sie @staging und @production einmal mit ihren SSH-Daten, danach läuft wp @staging plugin list aus Ihrem lokalen Terminal auf dem entfernten Server. Zusammen mit dem Schalter --ssh wird das Terminal auf Ihrem Laptop zur Leitstelle für jede WordPress-Website, die Sie betreuen.
Sicherheitstipps für WP-CLI
Die Effizienz schneidet in beide Richtungen: Befehle werden sofort ausgeführt, und ein Rückgängig gibt es nicht. Ein paar Gewohnheiten halten das Elektrowerkzeug davon ab, zum Problem zu werden:
- Vor zerstörerischen Befehlen exportieren. wp db export kostet Sekunden und macht aus einer Katastrophe eine Unannehmlichkeit. Befehle wie db reset, site empty und search-replace verdienen jedes Mal einen.
- Trockenlauf nutzen, wo angeboten. search-replace hat genau dafür --dry-run.
- Nicht als root ausführen. WP-CLI warnt lautstark, denn ein Prozess unter root führt den PHP-Code der Website mit vollen Systemrechten aus und legt Dateien an, die der Webserver-Benutzer nicht anfassen kann. Führen Sie es unter demselben Benutzer aus, unter dem die Website läuft.
- Erst Staging. Jeder Befehl, den Sie noch nie verwendet haben, verdient sein Produktionsdebüt auf einer Kopie.
WP-CLI und InspectWP: Befunde rein, Lösungen raus
Ein InspectWP-Bericht sagt Ihnen, was auf einer WordPress-Website Aufmerksamkeit braucht: eine veraltete Core-Version, Plugins mit ausstehenden Updates oder bekannten Schwachstellen, Themes, die zurückgefallen sind. WP-CLI ist der schnellste Weg, genau auf diese Befunde zu reagieren, denn wp core update und wp plugin update --all erledigen den Großteil davon in unter einer Minute, und wp core verify-checksums prüft die Integrität gegen, wenn ein Bericht Sicherheitsbedenken aufwirft. Beide ergeben eine natürliche Schleife für alle, die WordPress-Websites professionell betreuen: Geplante InspectWP-Berichte bringen die Arbeit ans Licht, eine WP-CLI-Sitzung räumt sie ab, und der nächste Bericht bestätigt die Lösung.