Installieren, Aktualisieren und Verwalten von WordPress-Plugins mit WP-CLI
Veröffentlicht: 2022-07-26Mit WP-CLI können Sie praktisch alles tun, was Sie im WordPress-Admin tun können, aber auf der Befehlszeile. Das spart viel Zeit und sorgt für einen saubereren Arbeitsablauf. Du kannst WP-CLI verwenden, um den WordPress-Kern zu verwalten, Theme-Updates auszuführen, Multisite-Installationen zu verwalten und vieles mehr. In diesem Artikel konzentrieren wir uns auf einen der häufigsten Anwendungsfälle, die Verwaltung Ihrer WordPress-Plugins.
WP-CLI-Befehle sind alle gleich aufgebaut. Es gibt immer einen übergeordneten Befehl (z. B. wp plugin
) und einen Unterbefehl (z. B. install
), gefolgt von Parametern und Schaltern. Wir werden uns in diesem Artikel auf das wp plugin
und seine Unterbefehle konzentrieren, aber eine ausführlichere Erklärung finden Sie in unserem Leitfaden zur WP-CLI-Befehlsstruktur.
Dieser Artikel verwendete den Befehl wp plugin
als Beispiel und hob hervor, wie Plugins mit WP-CLI installiert und aktiviert werden. In diesem Artikel werden wir viel tiefer in die Verwaltung unserer Plugins mit der WordPress-Befehlszeilenschnittstelle eintauchen.
Plugins installieren und aktivieren
Derzeit gibt es 16 offizielle Unterbefehle für den übergeordneten Befehl wp plugin
. In diesem Abschnitt behandeln wir die Unterbefehle für die Installation und Aktivierung. Wir werden uns auch ansehen, wie Plugins mit einem einzigen Befehl installiert und aktiviert werden. Wir werden uns auch ansehen, wie man Plugins aus anderen Quellen als dem WordPress-Plugin-Verzeichnis installiert.
Geben Sie wp plugin install
gefolgt vom offiziellen Slug des Plugins ein, um die neueste Version zu installieren:
wp-Plugin installiere hallo-dolly Installieren von Hello Dolly (1.7.2) Herunterladen des Installationspakets von https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip... Zwischengespeicherte Datei '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip' verwenden... Die Echtheit von hello-dolly.1.7.2.zip konnte nicht verifiziert werden, da keine Signatur gefunden wurde. Auspacken des Pakets... Plugin installieren... Plugin erfolgreich installiert. Erfolg: 1 von 1 Plugins installiert.
Als nächstes aktivieren wir das Plugin mit dem Befehl wp plugin activate
:
wp plugin aktiviere hello-dolly Plugin 'hello-dolly' aktiviert. Erfolg: 1 von 1 Plugins aktiviert.
Suche nach einem Plugin-Slug
Beachten Sie, dass sich der Slug oft vom Plugin-Namen unterscheidet. Der Slug ist in der URL des Plugins im WordPress-Plugin-Verzeichnis sichtbar, aber Sie können Ihren Arbeitsablauf beschleunigen, indem Sie bei der Befehlszeile bleiben und den Unterbefehl search
verwenden, gefolgt von zwei Parametern und ihren Werten: --per-page=1
und --fields=name,slug
.
Der optionale Parameter --per-page
teilt WP-CLI mit, wie viele Ergebnisse uns angezeigt werden sollen, in diesem Fall nur eines. Es werden standardmäßig 10 Ergebnisse angezeigt, wenn Sie ihm diesen Parameter nicht geben. Ich habe ihm hier den Wert 1
gegeben, da ich nur das relevanteste Ergebnis sehen möchte.
Der Parameter --fields
weist WP-CLI an, nach bestimmten Feldern von der API zu fragen, in diesem Fall nach dem Namen und Slug des Plugins. Es gibt eine große Auswahl an Werten, die Sie hier verwenden können, einschließlich version
, um die aktuelle Versionsnummer anzuzeigen, und rating
, um die Bewertungen des Plugins sowohl als Prozentsatz als auch als Gesamtzahl der Bewertungen anzuzeigen. Sie können stattdessen --field=<field>
verwenden, wenn Sie nur das Ergebnis eines einzelnen Felds anzeigen möchten. Sie müssen entweder den Parameter --fields
oder --field
mit dem wp plugin search
Suchbefehl verwenden.
wp-Plugin-Suche "wp offload media" --per-page=1 --fields=name,slug Erfolg: 1 von 66 Plugins werden angezeigt. +------------------------------------------------------------- -------------------------------+----------------- --------+ | Name | Schnecke | +------------------------------------------------------------- -------------------------------+----------------- --------+ | WP Offload Media Lite für Amazon S3, DigitalOcean Spaces und Google Cloud Sto | amazon-s3-und-cloudfront | | Wut | | +------------------------------------------------------------- -------------------------------+----------------- --------+
Da die Antwort auf diesen Befehl eine Liste ist, ist dies eine gute Gelegenheit zu zeigen, was der Parameter --format
kann. Lassen Sie uns WP-CLI bitten, uns diese Liste im JSON-Format zu geben, und sie dann für eine hübschere Formatierung über das jq-Dienstprogramm leiten. Das Dienstprogramm jq ist ein einfacher JSON-Befehlszeilenprozessor, den Sie über den obigen Link installieren oder online ausprobieren können. Achten Sie darauf, | jq
wegzulassen | jq
aus dem folgenden Befehl, wenn Sie es nicht installiert haben.
Wenn wir nach einer JSON-formatierten Ausgabe fragen, lässt WP-CLI die Statusmeldung weg, damit wir kein kaputtes JSON bekommen:
$ wp plugin search "wp offload media" --per-page=1 --fields=name,slug --format=json | jq [ { "name": "WP Offload Media Lite für Amazon S3, DigitalOcean Spaces und Google Cloud Storage", "slug": "amazon-s3-und-cloudfront" } ]
Um das Plugin nach der Installation zu aktivieren, verwenden Sie wp plugin activate
gefolgt vom offiziellen Slug des Plugins.
Plugin gleichzeitig installieren und aktivieren
Wenn es um die Verwaltung Ihrer Plugins mit WP-CLI geht, besteht einer der großen Vorteile darin, dass Sie ein Plugin mit einem einzigen Befehl installieren und aktivieren können. Während activate
als Unterbefehl mit wp plugin
verwendet werden kann, kann es auch als Parameter mit dem Befehl wp plugin install
verwendet werden:
# Plugin gleichzeitig installieren und aktivieren wp plugin install --activate hello-dolly
Installieren einer bestimmten Plugin-Version
Es ist nicht ungewöhnlich, dass Sie eine bestimmte Version eines Plugins zu Testzwecken installieren möchten. Solange die gewünschte Version noch im WordPress-Plugin-Verzeichnis verfügbar ist, können Sie jede Version auswählen, die Sie für richtig halten:
# Installieren einer bestimmten Plugin-Version wp plugin woocommerce installieren --version=5.5.3
Plugins von anderen Orten installieren
Das WordPress-Plugin-Verzeichnis ist nicht der einzige Ort, an dem wir Plugins erhalten können. Wir können ein Plugin auch direkt aus dem Dateisystem installieren. Wenn Sie ein Premium-Plugin kaufen, erhalten Sie die Erstlieferung meistens in Form einer ZIP-Datei. WP-CLI installiert diese ZIP-Datei gerne direkt, ohne dass das Paket zuerst extrahiert werden muss:
# Installieren eines Plugins aus dem Downloads-Ordner $ wp plugin install ~/Downloads/advanced-custom-fields-pro.zip
Dies funktioniert auch, wenn das Plug-in, das Sie installieren möchten, über eine URL verfügbar ist, die möglicherweise nur durch Angabe von Anmeldeinformationen über Anforderungsparameter oder auf einem Server mit einem selbstsignierten Zertifikat zugänglich ist:
# Holen Sie sich das Plugin von einer URL wp-Plugin installieren http://www.hellfish.media/my-plugin.zip # ...oder sogar eine private Datei aus einem Amazon-Bucket: wp-Plugin-Installation https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123 # Von unserem internen Server mit einem selbstsignierten Zertifikat: wp plugin install https://intranet.hellfish.media/my-plugin.zip --insecure
Plugins mit WP-CLI aktualisieren
Sobald Sie ein Plugin installiert haben, ist es aus Sicherheitsgründen wichtig, es auf dem neuesten Stand zu halten. Um herauszufinden, ob Plugins aktualisiert werden müssen, können wir den Befehl wp plugin list
ausführen:
wp-Plugin-Liste +--------------------------+----------+------ -----+---------+ | Name | Zustand | aktualisieren | Fassung | +--------------------------+----------+------ -----+---------+ | amazon-s3-und-cloudfront | aktiv | verfügbar | 2.6.1 | | hallo-dolly | aktiv | verfügbar | 1.7.1 | | wunderdevmu | Muss verwenden | Keine | 1,0 | +--------------------------+----------+------ -----+---------+
In diesem Fall müssen sowohl das Hello Dolly- als auch das WP Offload Media-Plugin aktualisiert werden. Natürlich gibt es dafür einen separaten Unterbefehl namens update
.
Wir können sie entweder einzeln aktualisieren oder ein bisschen faul sein und einfach alles aktualisieren, was auf einmal aktualisiert werden muss, indem wir den Schalter --all
. Das Standardverhalten des Update-Befehls besteht darin, bis zur neuesten verfügbaren Version zu aktualisieren, was Hauptversions-Upgrades umfasst. Aber durch die Verwendung des Schalters --minor
können wir etwas vorsichtiger sein und nur für Nebenversionen aktualisieren. Zum Beispiel können wir ihm sagen, dass er von 1.2.3 auf 1.3.0 aktualisieren soll, aber nicht auf 2.0.0. Wir können sogar besonders vorsichtig sein und den Schalter --patch
verwenden, um Updates nur auf Patches zu beschränken, dh von 1.2.3 auf 1.2.5, aber niemals auf 1.3.0.
# Aktualisieren Sie die Plugins sorgfältig nacheinander wp-Plugin-Update wp-offload-media wp-Plugin-Update hallo-dolly # Der Cowboy-Ansatz wp-Plugin-Update --all # Etwas vernünftiger wp-Plugin-Update --all --minor # Sehr defensiv wp plugin update --all --patch
Hinweis: Die Schalter --minor
und --patch
gehen davon aus, dass das Plugin semantische Versionierung verwendet. Bei weitem nicht alle Plugins tun dies, daher müssen Sie dies für die von Ihnen verwendeten Plugins nachschlagen, damit Sie keine unangenehmen Überraschungen erleben. Mit der Option --dry-run
können Sie überprüfen und sicherstellen, dass Ihre Befehle korrekt sind:
# Testen Sie die Aktualisierung eines einzelnen Plugins auf nur Patches wp plugin update hello-dolly --patch --dry-run
Der Parameter --exclude=<plugin name>
wird verwendet, um anzugeben, welche Plug-ins von der Aktualisierung ausgeschlossen werden sollen. Fügen Sie die Plugin-Namen als durch Kommas getrennte Liste hinzu, und WP-CLI aktualisiert alle anderen Plugins, während diese in Ruhe gelassen werden:
wp plugin update --all --exclude=hello-dolly Wartungsmodus aktivieren... Herunterladen des Updates von https://deliciousbrains.com/my-account/download/7512/?version=2.6.2... Update entpacken... Installiere die neuste Version... Entfernen der alten Version des Plugins... Plugin erfolgreich aktualisiert. Wartungsmodus deaktivieren... +---------------------+------------+-------- -----+---------+ | Name | alte_version | neue_version | Zustand | +---------------------+------------+-------- -----+---------+ | amazon-s3-und-cloudfront | 2.6.1 | 2.6.2 | Aktualisiert | +---------------------+------------+-------- -----+---------+
Plugin-Neuinstallation erzwingen
Die meisten Premium-Plugins verfügen über einen eigenen integrierten Update-Checker, der auch hervorragend mit WP-CLI funktioniert. Meiner Erfahrung nach kann jedes Plugin, das mit einem Klick über die WordPress-Admin-Seiten aktualisiert werden kann, auch mit WP-CLI aktualisiert werden. Aber in einigen Fällen werden Updates über eine neue Version der ZIP-Datei bereitgestellt, die Sie an der richtigen Stelle auf Ihrem Server ablegen müssen. Sie können diese Art von Updates anwenden, indem Sie eine Neuinstallation des Plugins mit dem Schalter --force
:
# Erzwinge die Neuinstallation eines Plugins wp plugin install ~/Downloads/my-custom-plugin-v2.zip --force
Automatische Updates aktivieren
Seit Version 5.5 kann WordPress Plugins automatisch aktualisieren. Automatische Updates müssen für jedes einzelne Plugin aktiviert werden. WP-CLI bietet keine Massenbehandlung für automatische Updates. Dies muss für jedes Plugin einzeln durchgeführt werden, indem der Unterbefehl auto-updates
verwendet wird. Sie können sehen, wie es mit den folgenden Befehlen funktioniert:
# Überprüfen Sie, ob automatische Updates für ein Plugin aktiviert sind wp-Plugin-Auto-Updates-Status hello-dolly # Automatische Updates aktivieren Auto-Updates des WP-Plugins aktivieren hello-dolly # Wieder deaktivieren Auto-Updates des wp-Plugins deaktivieren hello-dolly
Plugins deaktivieren und entfernen
Das Installieren, Aktivieren und Aktualisieren von Plugins gehört zu den häufigsten Aufgaben, aber es gibt noch andere Plugin-Verwaltungsaufgaben, die WP-CLI für uns erledigen kann.
Wenn Sie jemals versucht haben, herauszufinden, was ein Problem auf Ihrer WordPress-Website verursacht, wurde Ihnen wahrscheinlich empfohlen, als einen der ersten Schritte alle Plugins zu deaktivieren. Es ist möglich, dies mit der Massenverwaltung in einem Webbrowser zu tun, aber es macht mich immer nervös. Ich ziehe es vor, dies über die Befehlszeile mit dem Schalter --all
zu tun.
# Alle Plugins auf einmal deaktivieren wp-Plugin deaktivieren --all # Und wieder aktivieren wp-Plugin aktivieren --all
Das vollständige Entfernen eines Plugins ist mit WP-CLI ebenfalls problemlos möglich. Ein Unterschied zwischen der Ausführung über die Befehlszeile und den Browser besteht darin, dass Sie mit WP-CLI ein Plugin entfernen können, ohne zuerst die Deaktivierungs-Hooks auszuführen. Wenn du schon einmal ein Plugin installiert hattest, das WordPress beim Deaktivieren zum Absturz bringt, weißt du, warum das so nützlich sein kann:
# Deaktivieren und deinstallieren wp-Plugin deaktivieren hello-dolly --uninstall # Entfernen Sie ein Plugin, ohne ihm die Möglichkeit zu geben, es zu deaktivieren wp-Plugin löschen hello-dolly
Es gibt auch den toggle
-Unterbefehl, der sich auf die Aktivierung und Deaktivierung von Plugins bezieht. Der Aktivierungsstatus wird umgedreht oder umgeschaltet, sodass er sich in das Gegenteil des aktuellen Status ändert. Sie können --network
hinzufügen, um das Plugin für ein gesamtes Multisite-Netzwerk ein- oder auszuschalten.
Plugin-Prüfsummen
WP-CLI kann die Prüfsummen Ihrer installierten Plugins mit den Prüfsummen für dasselbe Plugin und dieselbe Version im WordPress-Plugin-Verzeichnis vergleichen. Dies ist eine sehr effiziente Methode, um festzustellen, ob die Plugin-Dateien in Ihrer WordPress-Installation manipuliert wurden. Wenn dies der Fall ist, ist dies ein starker Hinweis darauf, dass Sie gehackt wurden.
Prüfsummen sind spezielle Computeralgorithmen, die Eingaben jeder Art und Größe in eine kurze Zeichenfolge umwandeln können. Diese Zeichenfolge ist normalerweise etwa 20-40 Zeichen lang, wodurch sie sich zum Speichern in einer Datenbank eignet. Diese resultierende Zeichenfolge wird Hash, Signatur oder aus historischen Gründen Prüfsumme genannt.
Was diese Algorithmen einzigartig macht, ist, dass die Ausgabe völlig anders ist, wenn sich nur ein einziges Zeichen in der Eingabe ändert. Geben Sie alle Dateien eines Plugins einzeln in den Prüfsummenalgorithmus ein, und Sie erhalten am Ende eine kleine Signatur oder Prüfsumme, die das gesamte Plugin darstellt.
Jedes Mal, wenn eine neue Version eines Plugins im WordPress-Plugin-Verzeichnis veröffentlicht wird, wird die Prüfsumme für diese spezifische Version berechnet und gespeichert. Ein paar Monate später, wenn Sie überprüfen möchten, ob Sie nicht gehackt wurden, können Sie WP-CLI bitten, die Prüfsumme für Ihre Plugins zu berechnen und sie mit den ursprünglichen Prüfsummen zu vergleichen, die WordPress speichert. Wenn auf Ihrer Seite Dateien hinzugefügt, geändert oder fehlen, weicht die Prüfsumme für das Plugin von der ursprünglichen ab und WP-CLI macht etwas Lärm darüber.
Der Unterbefehl, der diese Magie der Hash-Prüfung handhabt, heißt verify-checksums
und ist im Wesentlichen dasselbe wie die Frage „Sind meine Plugins unverändert, seit ich sie aus dem WordPress-Plugin-Verzeichnis erhalten habe?“
# Suchen Sie nach einem einzelnen Plugin wp-Plugin verifiziere Prüfsummen hallo-dolly Erfolg: 1 von 1 Plugins verifiziert # Auf alle Plugins prüfen, die aus dem Repo stammen wp-Plugin verify-checksums --all
Dies funktioniert nur für Plugins, die aus dem offiziellen WordPress-Plugin-Verzeichnis installiert wurden, sodass Ihre Premium-Plugins von diesem Befehl nicht überprüft werden. Der Unterbefehl verify-checksums
checksums existiert auch für wp core
, kann aber nicht zur Überprüfung von WordPress-Designs verwendet werden.
Befehle für die Skripterstellung
Bisher sind die von uns behandelten Befehle für alle nützlich, die WordPress-Plugins verwalten müssen. Die letzten wp plugin
-Unterbefehle, die ich behandeln werde, sind in erster Linie für WordPress-Entwickler von Interesse, da sie hauptsächlich für die Verwendung in Bash-Skripten gedacht sind.
Zuerst müssen wir ein wenig über Unix-Exit-Codes sprechen. In einem Unix-System kehren alle Programme, die den Lauf beenden, mit einem Exit-Code zurück. Die Standardinterpretation ist, dass der Exit-Code 0
bedeutet, dass das Programm problemlos beendet wurde, während ein Exit-Code ungleich Null anzeigt, dass ein Fehler aufgetreten ist.
Fehlercodes werden häufig in Shell-Skripten verwendet, um sie in if/else
-Anweisungen und anderen Verzweigungsformen zu verwenden. Wir sehen den Exit-Code nicht, wenn wir einen Befehl normal von der Eingabeaufforderung aus ausführen, aber wir können ihn immer finden, indem wir $?
:
# Führen Sie etwas aus, das funktioniert, und erhalten Sie den Exit-Code Datum Echo $? 0 # Führen Sie etwas aus, das fehlschlägt ls /nonexistingfolder ls: /idongfdg: Keine solche Datei oder Verzeichnis Echo $? 1
In WP-CLI haben wir eine Reihe von Befehlen, die hauptsächlich dazu gedacht sind, etwas zu überprüfen und einen nützlichen Exit-Code zurückzugeben. Der Befehl wp plugin
hat zwei dieser Unterbefehle, is-installed
und is-active
, mit denen wir überprüfen können, ob ein bestimmtes Plugin installiert und aktiviert ist:
# Prüfen Sie, ob hello-dolly installiert ist (ist es) wp-Plugin ist hello-dolly installiert Echo $? 0 # Hello-Dolly entfernen und erneut prüfen wp-Plugin löschen hello-dolly wp-Plugin ist hello-dolly installiert Echo $? 1 # Prüfen Sie, ob Woocommerce aktiviert ist wp-Plugin ist aktives Woocommerce Echo $? 0 # WooCommerce deaktivieren wp-plugin woocommerce deaktivieren wp-Plugin ist aktives Woocommerce Echo $? 1
Mit den obigen Befehlen ist es möglich, Bash-Skripte zu schreiben, die verschiedene Dinge tun, je nachdem, ob ein bestimmtes Plugin installiert/aktiviert ist oder nicht.
Der letzte Unterbefehl, von dem ich vermute, dass er hauptsächlich für Skriptzwecke dient, ist path
. Dieser Befehl gibt einfach den Pfad zur Haupt-PHP-Datei eines Plugins und folglich auch zum Plugin-Ordner zurück. Wir können dies mit anderen Bash-Tricks kombinieren, zum Beispiel so:
# Alle Dateien im Woocommerce-Plugin-Ordner anzeigen ls -al $(dirname $(wp plugin path woocommerce))
Dies ist bei der täglichen Befehlszeilenarbeit nicht sehr nützlich, aber es ist sicherlich praktisch, wenn Sie Skripte schreiben und den Pfad für ein Plugin abrufen müssen.
Fazit
Wie Sie sehen können, erhöht die Verwaltung von WordPress-Plugins über die Befehlszeile Ihre Geschwindigkeit und macht viele allgemeine Aufgaben viel einfacher. Ich habe die häufigsten Aufgaben bei der Verwaltung Ihrer Plugins behandelt, aber ich ermutige Sie, auf eigene Faust weiter zu forschen. Sie werden bald feststellen, dass die Leistungsfähigkeit von WP-CLI weit über Plugins hinausgeht, sodass Sie praktisch alles tun können, was Sie im WordPress-Admin tun könnten, aber viel schneller.
Haben Sie großartige Beispiele dafür, wie Sie den Befehl wp plugin
verwenden? Bitte lass es mich in den Kommentaren wissen.