Mit dem mächtigen Kommandozeilentool wp-cli kannst Du nach etwas Einarbeitung mit wenigen Klicks Eure lokalen (aber auch Deine Live-)WordPress-Seiten verwalten. Wenn Du bisher noch keine Berührung mit der Kommandozeile hattest: wp-cli gibt Dir definitiv einen sehr guten Grund, Dich mit dem Terminal am Mac zu beschäftigen :) Der Vorteil von wp-cli: die Verwaltung benötigt nur das Terminal und nicht den Browser – Du brauchst also nicht im Backend zu sein, um beispielsweise Plugins zu installieren, zu aktivieren oder zu deaktivieren. Das spart nicht nur Zeit, weil Plugins zeitgleich mit der Installation direkt aktiviert werden können, Du kannst auch ganze Listen mit Deinen Standardplugins anlegen, die in einem Rutsch installiert und aktiviert werden können.

Der Befehl wp plugin list etwa – wer hätte das gedacht ;-) – gibt in Eurer Shell eine Liste mit den installierten Plugins aus.

Der Befehl wp plugin list etwa – wer hätte das gedacht ;-) – gibt in Eurer Shell eine Liste mit den installierten Plugins aus.

Nun habe ich bei meinen WordPress-Seiten schon mal 20 und mehr Plugins installiert – und nicht alle sind aktiv. Z.B. ein Maintenance-Plugin oder der Duplicator. Wenn ich zwischendurch mal alle Plugins deaktivieren will, geht das ganz schnell und einfach mit wp plugins deactivate --all . Nur: wie bekomme später ich genau dasselbe Set an Plugins wieder aktiviert, das vorher aktiv war?

Dafür habe ich ein Skript für die Shell zusammengestoppelt, das eine Liste der aktivierten Plugins in eine Textdatei »plugins-active.txt« schreibt. Zum Aktivieren dieser Plugin brauche ich dann nur im Terminal wp plugin activate eingeben und den Inhalt von »plugins-active.txt« ans Ende dieser Eingabe kopieren und Enter drücken. Fertig: alle zuvor aktiven Plugins sind jetzt erneut aktiviert!

Hier der komplette Einzeiler:
wp plugin list | grep -w active | awk '{print $1;}' | tr '\n' ' ' > plugins-active.txt

Lasst Euch nicht vom Umfang des Tutorials abschrecken: in der zweiten Hälfte (ab Schritt 10) erkläre ich die Skriptbestandteile im Detail, der reine Praxisteil geht von Schritt 1 – 9.

1. wp-cli: Vorbereitung

wp-cli Vorbereitung

Nachdem Ihr eine neue Shell im Terminal gestartet habt, könnt Ihr aus dem Finder das Verzeichnis, mit dem Ihr arbeiten wollt, auf das Terminalfenster im Dock ziehen. Ich habe mir unter MAMP Pro eine WordPress-Installation »wp-cli-tutorial« angelegt. Den kompletten Pfad seht Ihr im Screenshot am unteren Fensterrand: [Mein-Rechner] > Programme > MAMP > htdocs > wp-cli-tutorial

2. Wo bin ich?

wp-cli: wo bin ich?

Im Terminal ist man immer irgendwo auf seiner Festplatte. Die Bash-Shell zeigt einem nur nicht, wo.

3. Ich bin tatsächlich im richtigen Verzeichnis ;-)

wp-cli: pwd – ich bin im richtigen Verzeichnis

Also eben pwd eingeben und mit der Enter-Taste bestätigen: pwd steht für »print working directory«. Und damit zeigt Euch die Shell an, wo Ihr Euch gerade mit Eurem Terminal befindet.
Yep – alles klar: bin im richtigen Verzeichnis.

4. Skript laufen lassen

wp-cli: Skript laufen lassen

Durch die im wahrsten Sinn des Wortes Befehlskette wp plugin list | grep -w active | awk '{print $1;}' | tr '\n' ' ' > plugins-active.txt wird im aktuellen Verzeichnis die Textdatei »plugins-active.txt« mit einer Liste der aktiven Plugins angelegt.

5. Die Datei »plugins-active.txt« ist angelegt worden

wp-cli: textdatei mit Liste der aktiven Plugins ist angelegt worden

Das Skript hat im aktiven Verzeichnig »wp-cli-tutorial« die Datei »plugins-active.txt« mit den aktiven Plugins angelegt.

6. Mit wp-cli alle Plugins deaktivieren

mit wp-cli alle Plugins deaktivieren

Der Befehl »wp plugin deactivate –all« macht genau das: nach Bestätigung mit Enter werden alle aktiven Plugins deaktiviert.

7. wp-cli ist schnell, wirklich schnell

wp-cli ist schnell

Einen Moment nach Ausführung des Befehls zum Deaktivieren sind alle Plugins deaktiviert.
Jetzt könnt Ihr Tests an Eurer pluginlosen Installation machen.

8. Die vorher deaktivierten Plugins wieder aktivieren

die zuvor aktiven Plugins wieder aktivieren

Wenn Ihr dasselbe Set an Plugins wieder aktivieren wollt: schreibt als nächsten Befehl wp plugin activate. Dann kopiert Ihr Euch aus der Datei »plugins-active.txt« die Liste mit den ursprünglich aktiven Plugins und fügt sie hinter »wp plugin activate« ein. Mit Enter bestätigen.

9. Die zuvor deaktivierten Plugins sind wieder aktiv

wp-cli: das vorige Set an Plugins ist wieder aktiv

Genauso schnell, wie wp-cli Plugins deaktiviert, werden Plugins auch wieder aktiviert. Fertig.

Mit diesem Befehl und einer entsprechend vorbereiteten Textdatei lassen sich auch bei der Neuinstallation von WordPress auch ganze Plugin-Sets auf einen Schwung installieren.

Wer sich für die einzelnen Bestandteile des Skripts wp plugin list | grep -w active | awk '{print $1;}' | tr '\n' ' ' > plugins-active.txt interessiert: hier folgt die Erklärung.

10. Erklärung zu den Einzelschritten: der erste Skriptteil »wp plugin list«

wp-cli: wp plugin list

Wenig überraschend: wp-cli listet durch diesen Befehl alle Plugins auf.

11. Cool: eine Tabelle mit einer Menge Infos zu den Plugins

wp-cli gibt eine Tabelle zu Plugins aus

Hier würden auch erhältliche Update der betreffenden Plugins angezeigt werden.

12. Der zweite Skriptteil: »grep -w active«

wp-cli: grep

Mit der Pipe | habe ich den nächsten Bestandteil angehängt: grep -w active. Dadurch wird vom Programm grep die Ausgabe vom vorigen Schritt (»wp plugin list«) auf die Zeichenfolge active durchsucht. Die Option -w sorgt dafür, dass die Wortgrenzen eingehalten werden. Dadurch übergeht grep die Zeilen mit »inactive« und gibt nur die Zeilen aus, in denen wirklich »active« gefunden wird. Das bestätigt die Ausgabe:

13. Die Ausgabe von »grep -w active«

wp-cli: die Ausgabe von grep

14. Der dritte Skriptteil: »awk ‚{print $1;}’«

wp-cli: awk

Der nächste Befehl wird wie vorher mit einer Pipe angehängt. awk '{print $1;}' startet das Programm awk. Der Befehl '{print $1;}' sorgt dafür, dass wie in einer Tabelle nur die erste Spalte ausgegeben wird.

15. Die Ausgabe von » awk ‚{print $1;}’«

wp-cli: die ausgabe vom awk-Befehl

Das sieht schon gut aus, aber zwei Schritte fehlen noch. 1.: die Zeilenumbrüche sollen weg und 2. brauchen wir das Endergebnis in einer Textdatei.

16. Der vierte Skriptteil: »tr ‚\n‘ ‚ ‚«

wp-cli: tr

»tr« steht für »translate« und »übersetzt« Zeichen durch andere. In meinem Fall habe ich mit \n die Zeilenumbrüche durch ein Leerzeichen   ersetzt.

17. Zeilenumbrüche löschen

wp-cli: Zeilenumbrüche löschen

Durch die Löschung der Zeilenumbrüche stehen die Pluginbezeichnungen in einer Zeile.

18. Die Ausgabe in eine Textdatei

wp-cli: Ausgabe in Textdatei

Jetzt fehlt nur noch die Ausgabe in eine Textdatei. Und dafür sorgt das > active-plugins.txt: die Ausgabe der vorigen Befehle wird durch das > nicht mehr auf dem Bildschirm ausgegeben, sondern in eine Textdatei quasi umgelenkt.
Alles klar? ;-)
PS: Mir scheint der Gebrauch von grep und(!) awk nicht besonders elegant zu sein, ich habe aber keine kürzere andere Lösung gefunden. Wie würdet Ihr es machen? Freue mich wie immer über Kommentare!

Ähnliche Beiträge

6 Kommentare

  1. Hallo Karsten,

    ich bin auch immer wieder begeister, wie sehr sich die Arbeit mit WP-CLI automatisieren lässt.
    Allerdings bietet WP-CLI auch noch Optionen an, mit denen du eine Liste der aktivierten Plugins bequemer erstellen kannst:
    wp plugin list –field=name –status=active > plugins-activate.txt

    Viele Grüße, Bego

    1. Hallo Bego!

      Ich habe mir gedacht, dass mein Anliegen einfacher zu lösen sein muss! Deine Lösung kannte ich nicht – vielen Dank!

      Immerhin habe ich durch meinen Ansatz sehr viel über die Arbeit mit dem Terminal gelernt ;-) Und auch darüber, wie ich einen Beitrag, den ich in Markdown verfasst habe, möglichst zeitsparend nach WordPress rüber heben kann :)

      Viele Grüße
      Karsten

      1. Hallo Karsten,

        meine Antwort war auch bitte nur als Ergänzung gemeint. Es gibt viele Wege, die nach Rom führen und Du hast so anschaulich deinen Lösungsweg beschrieben, dass er sicher für viele eine Inspiration ist, sich mehr mit der Kommandzeile und WP-CLI zu beschäftigen. Alleine dafür verdienst du ein herzliches Dankeschön.

        Viele Grüße, Bego

  2. Servus. Ich lass einfach Mal

    wp option get active_plugins

    hier liegen 😉

    Der Vorteil ist, dass die Aktivierungsreihenfolge dort enthalten ist. Das wegschreiben und mit „set option“ wiederherstellen.

    Never change a running system ☝️

Schreibe einen Kommentar

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