WordPress bietet die Möglichkeit automatisch Updates durchzuführen. Dazu werden die Updates auch während der Hauptzeit ausgeführt (tagsüber). Um die Updates zu einer definierten Zeit durchzuführen lässt sich WP-CLI wunderbar verwenden.
Ein weiterer Aspekt ist die Übersetzungsdateien (sog. translation files) von WordPress selbst, der Plugins und Themes werden aktuell von WordPress nicht automatisch aktualisiert. Jeder kennt es, diese Updates müssen regelmäßig von Hand im Dashboard ausgeführt werden. Das lässt sich ebenfalls mit WP-CLI automatisieren. Unterlassen wir die Updates, so laufen wir Gefahr, dass auf einer nicht-englischen Seite oder im WordPress-Panel englische Begriffe auftauchen.

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 Schritt etwas angepasst weden.
Damit WP-CLI genutzt werden kann müssen wir es herunterladen und im eigenen Webhosting oder Server ablegen. 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 von Plesk nutzen). Damit die Datei tatsächlich ausgeführt werden kann benötigt sie ein Ausführungsrecht. Dazu mit dem Plesk-Dateimanager oder FTP-Programm die Ausführungsrechte setzen (siehe 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.