Installieren, Aktualisieren und Verwalten von WordPress-Plugins mit WP-CLI

Veröffentlicht: 2022-07-26

Mit 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.