WordPress bietet die Einstellung Updates von Core, Plugins und Themes automatisch durchführen zu lassen. Dazu werden die Updates zeitlich zufällig, auch tagsüber ausgeführt. Das führt zu Unterbrechungen im Betrieb der Homepage. Um die Updates zur festgelegten Zeit z.B. nachts durchzuführen, bietet sich WP-CLI an.
Ein weiterer Aspekt sind die Übersetzungsdateien (sog. translation files) von WordPress selbst und der Plugins und Themes, diese werden aktuell von WordPress nicht automatisch mitaktualisiert. Jeder kennt es, diese Updates müssen regelmäßig von Hand aus dem Dashboard ausgeführt werden. Das lässt sich ebenfalls mit WP-CLI automatisieren.
Unterlassen wir die Updates der sog. translation-Dateien, so laufen wir Gefahr, dass auf einer Seite, die nicht in Englisch läuft, Begriffe nicht übersetzt sind.

Um die Updates zu automatisieren, benötigen wir einen sog. Cronjob (bei Plesk wird es im Deutschen „Geplante Aufgaben“ genannt und befindet sich unter Websites & Domains im rechten Seitenmenü) mit dem wir WP-CLI auf unserer WordPress-Installation ausführen. Mit Cronjobs lassen sich zeitgesteuert Befehle ausführen oder URLs aufrufen. Auch lässt sich eine Mailbenachrichtigung bei jedem Aufruf oder im Fehlerfall einrichten. Die nachfolgenden Ausführungen beziehen sich auf ein Linux-Hosting welches in > 99% der Fall bei den meisten anzutreffen ist. Gehören Sie zu den wenigen, die ein Windows-Hosting haben, so müssen die Schritte etwas angepasst weden.
Damit WP-CLI genutzt werden kann, müssen wir es erst installieren. Dazu laden wir es herunter und legen WP-CLI im eigenen Webhosting bzw. Server ab. Das Paket enthält die ausführbare Datei „wp“. Die sollte jetzt im Filesystem im Webhosting abgelegt werden (dazu entweder FTP, SFTP oder den Dateimanager des Hostingpanels nutzen). Damit die Datei tatsächlich ausgeführt werden kann, benötigt sie ein Ausführungsrecht. Dazu mit dem Dateimanager oder FTP-Programm, die Ausführungsrechte setzen (siehe z.B. Plesk-Doku). Nun sind wir bereit die geplante Aufgabe anzulegen.

In Linux Commandline-Shells, in denen die Ausführung der Cronjobs stattfindet, gibt es die Möglichkeit Befehle zu verketten. Mit && werden Befehle verkettet und in der Reihenfolge von links nach rechts ausgeführt (z.B. Befehl1 && Befehl2 –MeinParameter usw.). Es lässt sich auch der Operator & statt && verwenden. Dann werden die nachfolgenden Befehle nur ausgeführt wenn der vorherige Befehl erfolgreich durchgelaufen ist. Macht in diesen Fall für unsere automatischen Updates aber keinen großen Unterschied welchen Operator wir verwenden.
Damit wirklich alles aktualisiert wird inkl. der Übersetzungsdateien verwenden wir folgenden Befehl:
cd /wordPressInstallation && wp core update && wp plugin update --all && wp theme update --all && wp language core update && wp language plugin update --all && wp language theme update --all
Zuerst wechseln wir mit cd /wordPressInstallation in das WordPress-Installationsverzeichnis (oft liegt die WordPress-Installation unter /httpdocs). Sind mehrere WordPress-Instanzen vorhanden, so kann für jede Seite eine geplante Aufgabe angelegt werden und die Schritte werden für jeden Auftritt wiederholt. Danach wird über wp core update das Update (bzw. Updateprüfung) von WordPress selbst angestoßen und über wp plugin update –all und wp theme update –all das Update von allen Plugins und Themes gestartet. Hier lässt sich auch einschränken für welche Plugins/Themes die Updates erfolgen sollen oder welche ignoriert werden sollen.
Der interessanteste Punkt ist der Befehl wp language. Damit lassen sich die besagten translation files aktualisieren. Entsprechend lässt sich das für Core (WordPress selbst), Plugins und Themes ausführen.
Damit wp als Befehl genutzt werden kann muss der Pfad zum Verzeichnis in dem die ausführbare Datei wp liegt in der sog. PATH-Variable enthalten sein. Dazu in der Datei .profile (Datei ggf. anlegen) im Hauptverzeichnis vom Hosting folgende Zeile hinzufügen:
PATH=/mybin:$PATH
/mybin muss entsprechend durch den Pfad ersetzt werden in dem wp liegt. Alternativ kann statt wp der absolute Pfad in den Cronjobs verwendet werden z.b. /mybin/wp core update. Dann ist die Erweiterung der PATH-Variable nicht notwendig.
WP-CLI regelmäßig updaten
Damit WP-CLI immer aktuell ist und somit zur aktuellen WordPress-Version kompatibel ist, muss es auch regelmäßig aktualisiert werden. Das gescheit mit folgendem Befehl.
wp cli update
Dazu legen wir ebenfalls eine geplante Aufgabe an. Ich führe es in meinen Kundenhostings 1x monatlich aus. Das ist vollkommen ausreichen für die Aktualisierungsfrequenz von WP-CLI.