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?
- Getting WP-CLI
- Die Grundlagen von WP-CLI
- WP-CLI-Befehle im Allgemeinen
- Nützliche Beispiele
- WordPress installieren
- WordPress Core neu installieren
- Ändern Sie die WordPress-URL
- Liste der aktuellen Plugins mit Details
- Installieren mehrerer Plugins
- Mehrere Plugins deaktivieren
- Plugins aktualisieren
- Datenbank suchen und Ersetzen
- Melden Sie sich für den Newsletter an
- Wir haben unseren Traffic mit WordPress um 1,187% gesteigert. Wir zeigen Ihnen, wie.
- Import Und Export
- Rollen und Funktionen verwalten
- Testdaten generieren
- WP-Cron-Ereignisse verwalten
- Transienten löschen
- Bereinigen der wp_options-Tabelle
- WordPress-Revisionen löschen
- Wartungsmodus steuern
- Indizierung von Daten mit Elasticsearch
- Arbeiten mit mehrsprachigen Websites
- Verwenden von WP-CLI mit WooCommerce
- WP-CLI aus der Ferne verwenden
- Konfigurieren von Remote-Servern
- Verwenden von Bash-Skripten
- Zusammenfassung
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!
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
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
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
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
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
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.
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
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