WP-CLI v2 – Verwalten von WordPress vom Terminal aus

WordPress wurde die meiste Zeit seines Lebens mit einer einfachen Codebasis erstellt, wobei ein Schuss objektorientiertes PHP das abstrakteste System war. In den letzten Jahren hat sich dies jedoch zum Besseren gewandelt. Von Unit-Tests über CSS-Vorverarbeitung bis hin zu Befehlszeilentools tauchen immer mehr entwicklerfreundliche Assets auf. In diesem Artikel werden wir uns einen meiner Favoriten ansehen: WP-CLI.

Was ist WP-CLI?

WP-CLI ist ein Befehlszeilentool für Entwickler, um allgemeine (und nicht so häufige) Aufgaben einer WordPress-Installation zu verwalten. Es kann Benutzer, Beiträge, Kategorien hinzufügen / entfernen, Testdaten einfügen, in der Datenbank suchen und ersetzen, Kennwörter zurücksetzen, bei der Behebung von Leistungsproblemen helfen und vieles mehr!

Unterstützung

WP-CLI ist seit über einem Jahrzehnt ein Open-Source-Projekt, das seit 2003 hauptsächlich von Daniel Bachhuber betreut wird. Das Hauptziel von WP-CLI ist es, die Workflows von WordPress-Entwicklern zu beschleunigen.

Im Laufe der Jahre ist aus dem Projekt so viel mehr geworden! Es wird jetzt sogar eine Voraussetzung für andere Open-Source-Projekte wie Trellis und Bedrock. Ab Januar 2017 zog WP-CLI offiziell nach WordPress.org und wird nun auch von Alain Schlesser mitbetreut.

WP-CLI v2 wurde am 8. August 2018 veröffentlicht, daher werden wir auch einige der Änderungen und neuen Funktionen untersuchen. Wenn Sie ein Kinsta-Client sind, WP-CLI v2.0.1 ist standardmäßig auf allen unseren Servern installiert, einfach SSH in Ihren Server, um loszulegen. SSH-Zugriff ist in allen unseren Hosting-Plänen enthalten (Kann keine Verbindung über SSH herstellen? Beheben Sie den SSH-Fehler „Verbindung abgelehnt“).

  • Abrufen von WP-CLI
  • Die Grundlagen von WP-CLI
  • WP-CLI-Befehle im Allgemeinen
  • Nützliche Beispiele
  • Verwenden von WP-CLI aus der Ferne
  • Verwenden von Bash-Skripten

Getting WP-CLI

Die minimale PHP-Anforderung für WP-CLI v2.0.0 wurde auf PHP 5.4 erhöht. Obwohl dies ein guter Schritt ist, empfehlen wir Ihnen, mindestens eine unterstützte Version von PHP auszuführen, dh 5.6 oder höher. PHP 7.2 ist der Standard für alle Kinsta-Installationen, sowohl aus Sicherheits- als auch aus Leistungsgründen. Wir haben auch PHP 7.3 und 7.4 zur Verfügung.

Um loszulegen, müssen Sie WP-CLI installieren – ein sehr einfacher Vorgang. Die Schritte für Linux und OSX sind die folgenden, geben Sie diese drei Befehle nacheinander aus:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharchmod +x wp-cli.pharsudo mv wp-cli.phar /usr/local/bin/wp

Wenn etwas schief geht oder Sie unter Windows arbeiten, lesen Sie die grundlegenden Anweisungen oder die alternativen Installationsmethoden.

Sobald Sie fertig sind, sollten Sie in der Lage sein, den Befehl wp --info auszugeben und eine aussagekräftige Antwort zu erhalten.

Der Vorgang ist derselbe, wenn Sie WP-CLI auf Ihrem Server installieren möchten. Denken Sie daran, dass für Kinsta-Clients WP-CLI bereits installiert ist. Nicht sicher, welche Version Sie gerade ausführen? Sie können jederzeit den Befehl wp cli version ausgeben, um dies herauszufinden.

Die Grundlagen von WP-CLI

Der Zugriff auf WordPress über die Befehlszeile ist an und für sich mächtig, kann Ihnen aber noch mehr Kontrolle und Geschwindigkeitsgewinne bei der Verwendung von Bash-Skripten geben.

Mit Bash-Skripten können Sie eine Folge von Befehlen mit einem einzigen Befehl ausführen. Sie können bash install-and-setup.sh eingeben und das folgende Ergebnis erhalten:

  • Laden Sie WordPress herunter
  • Erstellen und auffüllen wp-config.php
  • Erstellen Sie die Datenbank
  • Installieren Sie WordPress
  • Installieren und aktivieren Sie alle benötigten Plugins
  • Installieren und aktivieren Sie ein Thema
  • Laden Sie Testinhalte herunter und fügen Sie sie hinzu

schritte, die ich ausführen würde, um eine neue Testumgebung für ein Projekt zu erstellen. Normalerweise würde es mindestens 5-10 Minuten dauern, besonders wenn ein paar Plugins beteiligt sind. Die Ausgabe eines einzelnen Befehls ist offensichtlich viel schneller.

WP-CLI-Befehle im Allgemeinen

Wenn Sie es gewohnt sind, im Terminal zu arbeiten, ist WP-CLI für Sie nichts Besonderes. Befehle beginnen immer mit wp, gefolgt von einem Befehl und einem Unterbefehl, gefolgt von erforderlichen und optionalen Parametern, etwa so:

wp command subcommand requiredparam --optionalparam --optionalparam2=value

Lassen Sie uns ein Thema installieren, um zu sehen, wie dies mit einem echten Befehl funktioniert:

wp theme install twentyseventeen --activate

Dadurch wird das Twenty Seventeen-Thema in Ihrer WordPress-Installation installiert und aktiviert.

Beachten Sie, dass WP-CLI mit der WordPress-Installation funktioniert, die Sie gerade im Terminal befinden. Wenn Sie Verzeichnisse wechseln, um zu einer anderen WordPress-Installation zu wechseln, funktioniert dies mit dieser.

Nützliche Beispiele

Das war WP-CLI auf den Punkt gebracht! Es gibt zwar ein paar fortgeschrittene Dinge, die Sie tun können, auf die wir gleich eingehen werden, aber Sie wissen bereits genug, um loszulegen und alles zu tun, was Sie brauchen. Ich empfehle, einen Blick auf die Befehlsliste zu werfen und einige davon auszuprobieren. Wir werden uns hier einige nützliche Dinge ansehen und dann WP-CLI über SSH und Bash-Skripte verwenden.

WordPress installieren

Ich verwende WP-CLI häufig zum Einrichten von Testumgebungen, deren erster Schritt eine Vanilla-Installation ist. Hier ist eine Liste der Befehle, die ich ausführe:

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Beachten Sie, wie cool das ist! Die neueste Version von WordPress wird mit dem ersten Befehl heruntergeladen. Der zweite Befehl richtet die Konfigurationsdatei mit dem Datenbankzugriff und einigen zusätzlichen PHP am Ende ein. Die zusätzlichen Konstanten stellen sicher, dass wir unsere Debugging-Optionen zum Testen aktiviert haben. Wir haben hier eine detaillierte Anleitung, wenn Sie mehr über das Debuggen von WordPress erfahren möchten.

Der dritte Befehl erstellt die Datenbank (WP-CLI verwendet die Datenbankzugriffsinformationen aus der Konfigurationsdatei) und schließlich installieren wir WordPress mit einigen Parametern.

WordPress Core neu installieren

Sie können WordPress Core auch mit WP-CLI neu installieren. Der folgende Befehl würde WordPress Core ohne die Standardthemen und Plugins herunterladen.

wp core download --skip-content --force

Ändern Sie die WordPress-URL

Es gibt viele Gründe, warum Sie Ihre WordPress-URL ändern müssen oder möchten. Möglicherweise ändern Sie Domänen, wechseln zu einer Subdomain, aktualisieren von www zu Nicht-www, verschieben Dateien oder migrieren sogar von HTTP zu HTTPS. Was auch immer der Fall sein mag, Sie können dafür einfach den Befehl wp option update verwenden. Hier ist ein Beispiel unten:

wp option update home 'http://example.com'wp option update siteurl 'http://example.com'

Liste der aktuellen Plugins mit Details

Um eine Liste der aktuellen Plugins zu erhalten, die auf einer Site installiert sind, verwenden Sie einfach den folgenden Befehl. In diesem Beispiel können Sie sehen, dass wir das Schema- und Yoast SEO-Plugin installiert haben. Es gibt auch den Status (aktiv / deaktiviert), wenn ein Update verfügbar ist, und die aktuelle Version zurück.

wp plugin list
 WP-CLI Plugin-Liste

WP-CLI Plugin-Liste

Installieren mehrerer Plugins

Um mehrere Plugins zu installieren, können Sie einfach auf Parameter klicken. Hier ist ein Beispiel, das 3 Plugins herunterlädt und aktiviert:

wp plugin install advanced-custom-fields jetpack ninja-forms --activate

Beachten Sie, dass die Plugin-Namen von ihrem Namen im Repository stammen. Der einfachste Weg, dies herauszufinden, besteht darin, die Seite zu besuchen und sich die URL anzusehen oder wp plugin search searchterm zu verwenden, um eine Liste im Terminal zu erhalten.

WordPress Plugin Repository URL

WordPress Plugin Repository URL

Sie können bei Bedarf auch ältere Versionen von WordPress Plugins mit dem Attribut --version installieren.

wp plugin install wordpress-seo --version=4.8 --activate

Noch cooler ist, dass Sie Plugins aus Remote-Dateien installieren können, nicht nur aus dem Repository, was praktisch ist, wenn Sie ein Plugin entwickeln oder ein Premium-Plugin verwenden. Mit dem folgenden Befehl werden zwei Plugins aus dem Repository und eines von einem Amazon S3-Server installiert.

wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate

Mehrere Plugins deaktivieren

Um ein einzelnes Plugin zu deaktivieren, können Sie den folgenden Befehl ausführen.

wp plugin deactivate wordpress-seo

Um alle Ihre Plugins auf einmal zu deaktivieren, führen Sie den folgenden Befehl aus.

wp plugin deactivate --all
 WP-CLI deaktivieren Sie alle Plugins

WP-CLI deaktivieren Sie alle Plugins

Dieser obige Befehl kann nützlich sein, wenn Sie Kompatibilitätsprobleme beheben und einfach alle Plugins auf einen Schlag deaktivieren müssen. Sie können dann zurückgehen und sie nacheinander aktivieren und dabei testen.

Plugins aktualisieren

Sie können WordPress-Plugins auch manuell aktualisieren. Beispiel unten:

wp plugin update wordpress-seo
 wp-cli WordPress-Plugin manuell aktualisieren

WP-CLI WordPress-Plugin manuell aktualisieren

Datenbank suchen und Ersetzen

Einer der Hauptgründe, warum es schwierig ist, eine Site durch einfaches Kopieren und Einfügen einer Datenbank zu migrieren, besteht darin, dass die Datenbank serialisierte Arrays enthält. Wenn Sie alle Instanzen von http://testsite.com durch http://livewebsite.com ersetzen müssen, sind Ihre serialisierten Arrays nicht sinnvoll, da die Anzahl der Zeichenfolgen nicht übereinstimmt.

Melden Sie sich für den Newsletter an

Wir haben unseren Traffic mit WordPress um 1,187% gesteigert. Wir zeigen Ihnen, wie.

Schließen Sie sich über 20.000 anderen an, die unseren wöchentlichen Newsletter mit Insider-WordPress-Tipps erhalten!

Jetzt abonnieren

Der Befehl search-replace deserialisiert zuerst Arrays, führt dann das Suchen und Ersetzen durch und serialisiert die Arrays dann erneut. Sie können dies mit einem einfachen Befehl erledigen:

wp search-replace oldstring newstring

Mit zusätzlichen Parametern können Sie viel mehr tun, einschließlich der Vorschau, was durch die Verwendung von --dry-run ersetzt wird.

Import Und Export

Es gibt zwei Möglichkeiten, Inhalte mit WP-CLI zu exportieren. Sie können eine XML-Datei erstellen, genau wie das WordPress-Exporttool, oder Sie können die Rohdatenbank exportieren / importieren. Ich finde das später viel nützlicher in meiner täglichen Routine, es ist praktisch beim Synchronisieren von Websites.

wp db export ist alles, was Sie tun müssen, um eine SQL-Datei zu erstellen, und wp db import file.sql ist alles, was Sie zum Importieren benötigen. Funktioniert wie ein Zauber, achten Sie nur darauf, nichts zu überschreiben, was Sie brauchen, der Import wird im Grunde die vorhandene Datenbank sichern und stattdessen die mitgelieferte SQL-Datei verwenden.

Rollen und Funktionen verwalten

WP-CLI kann Rollen für Sie ziemlich einfach mit dem Befehl wp role verwalten. Dies ist ziemlich cool, wenn Sie testen möchten, wie Ihr Plugin mit benutzerdefinierten Rollen funktioniert, die Rollen jedoch nicht in Ihrem Plugin erstellen.

wp role create organizer Organizerwp cap list 'editor' | xargs wp cap add 'organizer'wp cap add 'organizer' 'manage-events'

Die obigen Befehle erstellen eine neue Rolle (Organizer), fügen alle Funktionen aus der Editorrolle hinzu und fügen dann eine neue Funktion hinzu: manage-events .

Testdaten generieren

Ich liebe alle Arten von Faker-ähnlichen Funktionen – solche, die Ihrer Site Dummy-Inhalte hinzufügen, die Sie für Tests verwenden können. WP-CLI hat ein paar davon eingebaut, hier sind ein paar Funktionen, die Benutzer, Begriffe und Beiträge generieren.

wp user generate --count=5 --role=editorwp user generate --count=10 --role=authorwp term generate --count=12wp post generate --count=50

WP-Cron-Ereignisse verwalten

Sie können WP-Cron-Ereignisse und / oder einen WordPress-Cron-Job in WP-CLI verwalten. Mit dem folgenden Befehl erhalten Sie beispielsweise Ihre aktuelle Cron-Ereignisliste.

wp cron event list
 wp-cron-Ereignisliste

wp-cron-Ereignisliste

Transienten löschen

Mit dem folgenden Befehl können Sie sogar einen oder alle Transienten löschen und löschen.

wp transient delete --all

Wenn Sie Multisite ausführen, benötigen Sie einen etwas komplizierteren Befehl. Standardmäßig überprüft der Befehl nur die Tabelle wp_options. Es wird nicht nach wp_1_options, wp_2_options usw. gesucht.

Probleme mit Ausfallzeiten und WordPress-Problemen? Kinsta ist die Hosting-Lösung, mit der Sie Zeit sparen können! Schauen Sie sich unsere Funktionen an

wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all

Bereinigen der wp_options-Tabelle

Die wp_options-Tabelle kann ein häufiger Grund für langsame Abfragezeiten auf Ihrer Website sein, da automatisch geladene Daten von Plugins und Themes von Drittanbietern zurückbleiben. Schauen Sie sich diesen großartigen Artikel von WP Bullet an, wie Sie mit WP-CLI Ihre wp_options-Tabelle bereinigen.

WordPress-Revisionen löschen

Auf großen Websites können sich WordPress-Revisionen sehr schnell zu Tausenden von Zeilen in Ihrer Datenbank summieren, die nicht benötigt werden. Sie können Post-Revisionen mit WP-CLI löschen. Hier ist ein Beispiel für den Befehl:

$ wp post delete $(wp post list --post_type='revision' --format=ids)
 wp-cli WordPress-Revisionen löschen

WP-CLI WordPress-Revisionen löschen

Wartungsmodus steuern

Ab WP-CLI v2.2.0 können Sie jetzt den Wartungsmodus auf Ihrer WordPress-Site steuern. Beispiel:

wp maintenance-mode activatewp maintenance-mode deactivatewp maintenance-mode status

Indizierung von Daten mit Elasticsearch

Elasticsearch ist eine Open-Source-Volltextsuchmaschine. Es wird verwendet, um Daten zu indizieren und diese Daten unglaublich schnell zu durchsuchen. Wir bieten dies als Add-On für Kinsta-Kunden an. Sie können ElasticPress WP-CLI-Befehle verwenden, um die Indizierung über SSH durchzuführen. Beispiel:

wp elasticpress index

Arbeiten mit mehrsprachigen Websites

WP-CLI v2.0.0 enthält eine neue Familie von Befehlen wp i18n für diejenigen unter Ihnen, die mit mehrsprachigen Websites arbeiten. Sie können beispielsweise eine POT-Datei für ein WordPress-Plugin oder -Thema erstellen.

wp i18n make-pot <source> ] 

Siehe i18n-command Dokumentation.

Verwenden von WP-CLI mit WooCommerce

Arbeiten mit E-Commerce-Sites? 🛒 Wir empfehlen, Robot Ninjas amazing WP-CLI WooCommerce Development Guide für schnelle und einfache Befehle zu überprüfen, die Sie verwenden können. Das Generieren einer Liste von Kunden, Bestellungen und sogar das Erstellen von Massenprodukten ist mit WP-CLI möglich.

WP-CLI aus der Ferne verwenden

Eines der besten Dinge, die Sie mit WP-CLI tun können, ist die Verwaltung Ihrer Remote-WordPress-Installationen. Dies ist wirklich der Traum eines Website-Managers.

Um WP-CLI-Befehle nahtlos auf einem Remote-Server über SSH auszuführen, benötigten Sie zuvor den Addon-Befehl wp-cli-ssh. Aber ab v0.24.0 ist dies jetzt Teil von WP-CLI selbst! 👏

Wichtig: Sie müssen WP-CLI sowohl auf dem Computer, auf dem Sie den Befehl ausführen, als auch auf Ihrem Server installiert haben.

Konfigurieren von Remote-Servern

Sie können Ihre Server global oder lokal konfigurieren. Um sie global zu konfigurieren, verwenden Sie die Datei config.yml. Sie können auch die Dateien wp-cli.yml oder wp-cli.local.yml in Ihrem aktuellen Arbeitsverzeichnis verwenden.

Die Konfiguration von Servern funktioniert ungefähr so, fügen Sie dies in eine der genannten Dateien ein:

ssh: staging: cmd: ssh %pseudotty% %cmd% url: http://myseite.com path: /www/path/to/site/root

Sobald dies alles erledigt ist, können Sie den folgenden Befehl eingeben, um WordPress auf Ihrer Remote-Site zu aktualisieren:

wp ssh core update --host=staging

Wenn Sie viele Websites besitzen oder verwalten, können Sie sehen, dass dies erstaunlich ist! Das Skript fragt nach einem Passwort, aber wenn Sie RSA-Schlüssel zum Anmelden verwenden, können Sie auch darauf verzichten. Schauen Sie sich diesen Artikel an, um dies einzurichten.

Verwenden von Bash-Skripten

Bash-Skripte sparen Ihnen noch mehr Zeit, indem Sie Aufgaben automatisieren. Denken Sie daran, wie wir viele Befehle eingeben mussten, um WordPress zu installieren? Sie können dies mit einem einzigen Bash-Skript tun. Erstellen Sie in einem Verzeichnis eine install.sh -Datei. Fügen Sie den gleichen Code ein, den wir zuvor hatten, und speichern Sie ihn.

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Alles, was Sie jetzt tun müssen, ist bash install.sh einzugeben, und alles wird ohne Benutzereingriff für Sie erledigt. Wenn Sie viele Websites verwalten, können Sie alle Ihre Umgebungen einrichten und ein Bash-Skript wie dieses erstellen:

wp ssh core update --host=clientAwp ssh core update --host=clientBwp ssh core update --host=clientCwp ssh core update --host=clientD

Wenn eine neue WordPress-Version herauskommt, könnte dies Ihnen viel Zeit sparen! Da Sie mit WP-CLI alles tun können, was Sie möchten, können Sie sogar Themes und Plugins regelmäßig auf einer Reihe von Client-Sites gleichzeitig aktualisieren.

Zusammenfassung

WP-CLI ist wirklich der Traum des Entwicklers und Website-Managers. Als Entwickler können wir Testseiten im Handumdrehen erstellen, Testinhalte hinzufügen und alle Arten von Import / Export-Magie ausführen. Site-Manager können Site-Updates und andere Aufgaben für mehrere Sites mit einzelnen Befehlen ausführen. Schauen Sie sich unbedingt die WP-CLI v2 Release Notes an!

Wenn Sie WP-CLI noch nicht ausprobiert haben, fordere ich Sie auf, es auszuprobieren. Es gibt auch eine Reihe von Community-Befehlen wie WP-CLI-SSH, die noch mehr großartige Funktionen hinzufügen! Wenn Sie auf Probleme stoßen, lesen Sie unbedingt die Dokumentation zu allgemeinen Problemen mit WP-CLI.

Vergessen Sie nicht, dass die Google Cloud-basierte Architektur von Kinsta WP-CLI sofort unterstützt. Wenn Sie die modernste WordPress-Hosting-Architektur ausprobieren und Zugriff auf großartige Tools wie WP-CLI haben möchten, probieren Sie unser Managed WordPress Hosting aus.

Wenn Ihnen dieser Artikel gefallen hat, werden Sie die WordPress-Hosting-Plattform von Kinsta lieben. Laden Sie Ihre Website auf und erhalten Sie 24/7 Support von unserem erfahrenen WordPress-Team. Unsere von Google Cloud betriebene Infrastruktur konzentriert sich auf automatische Skalierung, Leistung und Sicherheit. Lassen Sie uns Ihnen den Kinsta-Unterschied zeigen! Schauen Sie sich unsere Pläne an



+