Schnelle und einfache WordPress-Updates mit der WP-CLI

Wordpress-Updates mit WP-CLI
Wordpress-Updates mit WP-CLI

Über die WordPress-Kommandozeile (WP-CLI) habe ich schon in einem anderen Beitrag (Backups über die Kommandozeile) geschrieben. Dieser Beitrag ist quasi die Fortsetzung, denn hierbei geht es um Updates für deine WordPress-Seite mittels WP-CLI.

Was ist „WP-CLI“?

In der Regel erfolgt die Bedienung deiner WordPress-Seite über das Backend. Dort siehst du, welche Updates verfügbar sind, kannst Beiträge und Seiten erstellen bzw. editieren und vieles mehr. Über das Kommandozeilentool „WP-CLI“ können viele der Aufgaben, die im Backend erledigt werden, auch über die Kommandozeile ausgeführt werden.

Das klingt zwar (zumindest für manche) erstmal aufwändig, ist aber oft eine deutliche Zeitersparnis. Denn statt durch mehrere Klicks können viele Aufgaben durch einen einzelnen Befehl ausgeführt werden. Zum Beispiel kann man damit

  • Plugins (de)installieren, (de)aktivieren und updaten
  • Datenbank exportieren
  • WordPress installieren
  • Kommentare moderieren
  • Beiträge bearbeiten, erstellen oder löschen
  • Mulitsites verwalten

Wie kann ich WP-CLI nutzen?

Du willst WP-CLI ausprobieren? Um WP-CLI nutzen zu können, brauchst du ein Hostingpaket mit SSH-Zugang. Wer lokal auf dem eigenen Rechner entwickelt, kann alternativ auch dort testen.

Du loggst dich in dem Verzeichnis über den SSH-Zugang in das gewünschte Verzeichnis ein, auf dem du WP-CLI verwenden möchtest. In meinem Fall ist das das Hauptverzeichnis in meinem Hostingpaket, in dem ich meine Webseiten liegen habe. WP-CLI ist dann später für alle dort enthaltenden WordPress-Seiten nutzbar.

Auf der folgenden Seite findest du eine gute Beschreibung, um WP-CLI zu installieren (und viele weitere Infos). Dabei wird auch erklärt, wie du vorgehen musst, um WP-CLI über das Kürzel wp zu nutzen. (Übrigens: Auch einige Hoster bieten Anleitungen zum Installieren von WP-CLI an, wie z. B. All-inkl hier. Bei Problemen also auch unbedingt dort nach einer Anleitung suchen.)

Wenn alles funktioniert hat, solltest du über den Befehl wp --info eine ähnliche Ausgabe erhalten.

$ wp --info
OS:	Linux 4.4.0-173-generic #203-Ubuntu SMP Wed Jan 15 02:55:01 UTC 2020 x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php70
PHP version:	7.0.33-nmm1
php.ini used:	/etc/php70/cli/php.ini
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	/www/htdocs/w0138428/vegane-prinzessin.de
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	2.4.0

Und wie läuft das mit den Updates?

So. WP-CLI sollte jetzt hoffentlich bei dir funktionieren. Wenn du jetzt vom Hauptverzeichnis in den Ordner deiner jeweiligen WordPress-Instanz wechselst, kannst du verschiedene Befehle aufrufen:

Vorbereitung: Bevor du irgendwelche Updates durchführst, solltest du umbedingt ein Backup gemacht haben. Auch das kannst du über die Shell durchführen. Wie das genau funktioniert, habe ich in einem anderen Artikel beschrieben.

Plugins updaten

Um einen Überblick über die installierten Plugins zu erhalten und zu sehen, ob es Updates gibt, eignet sich der Befehl wp plugin list. In der Tabelle siehst du direkt, welche Updates verfügbar sind.

$ wp plugin list
+--------------------------+--------+-----------+---------+
| name                     | status | update    | version |
+--------------------------+--------+-----------+---------+
| antispam-bee             | active | none      | 2.9.1   |
| borlabs-cookie           | active | none      | 2.1.13  |
| contact-form-7           | active | none      | 5.1.6   |
| amz-vc-copy-paster-basic | active | none      | 1.1.2   |
| amz-rigel-plugins        | active | none      | 1.6.4   |
| updraftplus              | active | none      | 1.16.21 |
| js_composer              | active | available | 6.0.3   |
+--------------------------+--------+-----------+---------+

Du kannst jetzt nach Bedarf Plugins einzeln updaten über den Befehl $ wp plugin update <pluginname> oder auch alle Plugins updaten über $ wp plugin update --all. Hier können Fehler auftreten, z. B. weil keine gültige Lizenz vorliegt und somit das Plugin nicht aktualisiert werden kann.

$ wp core check-update

Themes updaten

Die Aktualisierung von Themes läuft analog zum Pluginupdate. Im ersten Schritt prüfen wir mit dem Befehl $ wp theme list, ob irgendwelche Updates vorliegen.

$ wp theme list
+-----------------+----------+-----------+---------+
| name            | status   | update    | version |
+-----------------+----------+-----------+---------+
| emsgold-child   | active   | none      | 1.1     |
| emsgold         | parent   | none      | 1.6.4   |
| twentyseventeen | inactive | none      | 2.2     |
| twentytwenty    | inactive | available | 1.0     |
+-----------------+----------+-----------+---------+

Genau wie bei den Plugins kannst du jetzt einzelne Themes über den Befehl $ wp theme update <themename> oder auch alle über $ wp theme update --all aktualisieren.

$ wp theme update --all
Herunterladen der Aktualisierung von https://downloads.wordpress.org/theme/twentytwenty.1.1.zip …
Using cached file '/.wp-cli/cache/theme/twentytwenty-1.1.zip'...
Entpacken der aktualisierten Version …
Die aktuelle Version wird installiert …
Entfernung der alten Version des Themes …
Das Theme wurde erfolgreich aktualisiert.
+--------------+-------------+-------------+---------+
| name         | old_version | new_version | status  |
+--------------+-------------+-------------+---------+
| twentytwenty | 1.0         | 1.1         | Updated |
+--------------+-------------+-------------+---------+
Success: Updated 1 of 1 themes.

Core updaten

Weiter gehts. Über den Befehl $ wp core check-update können wir prüfen, ob ein neues Update vorliegt.

$ wp core check-update
+---------+-------------+-------------------------------------------------------------------+
| version | update_type | package_url                                                       |
+---------+-------------+-------------------------------------------------------------------+
| 5.0.8   | minor       | https://downloads.wordpress.org/release/de_DE/wordpress-5.0.8.zip |
| 5.3.2   | major       | https://downloads.wordpress.org/release/de_DE/wordpress-5.3.2.zip |
+---------+-------------+-------------------------------------------------------------------+

Im nächsten Schritt werden wir den Core updaten. Hierzu sollte man überprüfen, ob alle installierten Plugins für die neue Version geeignet sind. Das gilt insbesondere bei größeren Änderungen (Major-Updates)! In dem Zusammenhang sollte auch umbedingt geprüft werden, wann das letzte Update für bestimmte Plugins zur Verfügung gestellt wurde – also die Frage, ob das Plugin überhaupt noch gepflegt wird.

Leider sind diese Infos nicht direkt über WP-CLI aufrufbar. Am einfachsten ist es, im Backend unter Plugins für die jeweiligen Plugins unter „Details ansehen“ (für Plugins aus dem Pluginverzeichnis) dies zu überprüfen. Für andere (Premium-)Plugins findet man diese Infos (hoffentlich) auf der Pluginseite.

Alles klar soweit? Dann kann es jetzt an die Installation gehen. Hierzu geben wir die gewünschte Version an und nutzen den Befehl $ wp core update --version=5.3.2.

$ wp core update --version=5.3.2
Updating to version 5.3.2 (de_DE)...
Using cached file '/.wp-cli/cache/core/wordpress-5.3.2-de_DE-de_DE.zip'...
Entpacken der aktualisierten Version …
Cleaning up files...
No files found that need cleaning up.
Success: WordPress updated successfully.

Im Optimalfall klappt soweit alles ohne Probleme. Aber natürlich können auch immer Fehler auftreten. Wenn du merkst, dass irgendwas schief gelaufen ist, kannst du dein Backup einspielen. Alternativ können manche Probleme (kurzfristig, bitte nicht als Dauerlösung!) auch schon behoben werden, wenn man das Update rückgängig macht. Dazu geben wir einfach die gewünschte Version an und erzwingen das „Downgrade“ über die Option --force:

$ wp core update --version=5.0.3 --force

Übersetzungen updaten

Die wichtigsten und häufigsten Updates haben wir jetzt fertig. Hin und wieder gibt es auch Updates der Übersetzungen. Dies können wir über die folgenden drei Befehle überprüfen:

Für Plugins: wp language plugin list --all --status=active

Für Themes: wp language theme list --all --status=active

Für Core: wp language core list --status=active

Die Installation erfolgt ähnlich einfach wie vorher:

Die Übersetzung von Plugins und Themes werden gleichermaßen aktualisiert über die Befehle

wp language plugin update --all für alle Updates der Plugins und

wp language theme update --all  bei den Themes.

Schließlich können auch noch die Übersetzungen vom Core über den Befehl wp language core update aktualisiert werden.

$ wp language core update
Updating 'German' translation for WordPress 5.3.2...
Downloading translation from https://downloads.wordpress.org/translation/core/5.3.2/de_DE.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the translation...
Translation updated successfully.
Success: Updated 1/1 translation.

Soo, fertig! Das wars. Jetzt sollte alles aktuell sein.

Fazit

Ich liebe WP-CLI. Ich hoffe, ich konnte euch das Thema nahe bringen. Ich kann jedem empfehlen, sich damit auseinanderzusetzen. Mehr Infos zu dem Thema gibt es unter

  • https://wp-cli.org/de/ (alle Infos)
  • https://developer.wordpress.org/cli/commands/ (Kommandoliste)

Next step: Das ganze kann man jetzt auch noch mit einem Shellskript und einem Cronjob automatisieren. Aber das ist wohl eher das Thema eines eigenen Artikels.

Ich freue mich über Fragen, Anmerkungen und Kritik. Danke!

Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert