WP-CLI Tutorial
Dieses Tutorial behandelt die folgenden Themen:
WP-CLI ist eine Befehlszeilenschnittstelle, die es den Benutzern ermöglicht, ihre WordPress-Websites von der Eingabeaufforderung aus zu verwalten. Upgrades können durchgeführt werden, Backups können erstellt werden, neue Beiträge können veröffentlicht werden und die meisten regulären Admin-Aktionen können mit einem Satz von Befehlen ausgeführt werden.
Dieses Tutorial erklärt, wie man die WP-Befehlszeilenschnittstelle verwendet, um reguläre Verwaltungsaufgaben wie Upgrades, die Erstellung von Datenbank-Backups, Plugins und Theme-Installation und-Entfernung, Veröffentlichung und Löschung von Posts, Änderung der URL-Einstellungen der Website und Hilfe zu ausgewählten Befehlen durchzuführen. Beachten Sie, dass WP-CLI einen SSH-Zugriff erfordert.
Liste der verfügbaren WP-CLI-Befehle
Um alle Befehle aufzulisten, schreiben Sie “wp help” oder einfach “wp”. Die folgende Liste wird angezeigt:
akismet Filter spam comments.
cache Manage the object cache.
cap Manage user capabilities.
checksum Verify WordPress core checksums.
cli Review current WP-CLI info, check for updates, or see defined aliases.
comment Manage comments.
config Manage the wp-config.php file
core Download, install, update and manage a WordPress install.
cron Manage WP-Cron events and schedules.
db Perform basic database operations using credentials stored in wp-config.php
eval Execute arbitrary PHP code.
eval-file Load and execute a PHP file.
export Export WordPress content to a WXR file.
help Get help on WP-CLI, or on a specific command.
import Import content from a WXR file.
jetpack Control your local Jetpack installation.
language
media Import new attachments or regenerate existing ones.
menu List, create, assign, and delete menus.
network
option Manage options.
package Manage WP-CLI packages.
plugin Manage plugins.
post Manage posts.
post-type Manage post types.
rewrite Manage rewrite rules.
role Manage user roles.
scaffold Generate code for post types, taxonomies, plugins, child themes, etc.
search-replace Search/replace strings in the database.
server Launch PHP's built-in web server for this specific WordPress install.
sg Manage SiteGround Cache
sgphpcompat Test compatibility with different PHP versions.
shell Interactive PHP console.
sidebar Manage sidebars.
site Perform site-wide operations.
super-admin Manage super admins on WordPress multisite.
taxonomy Manage taxonomies.
term Manage terms.
theme Manage themes.
transient Manage transients.
user Manage users.
widget Manage sidebar widgets.
Wenn Sie eine detaillierte Dokumentation erhalten möchten, beispielsweise für den Befehl “ wp db export” , geben Sie den folgenden Befehl ein:
wp help db export
Das Ergebnis wird wie folgt aussehen:
NAME
wp db export
DESCRIPTION
Exports the database to a file or to STDOUT.
SYNOPSIS
wp db export [] [--=] [--tables=] [--exclude_tables=] [--porcelain]
ALIAS
dump
Runs `mysqldump` utility using `DB_HOST`, `DB_NAME`, `DB_USER` and
`DB_PASSWORD` database credentials specified in wp-config.php.
OPTIONS
[]
The name of the SQL file to export. If '-', then outputs to STDOUT. If omitted, it will be '{dbname}.sql'.
[--=]
Extra arguments to pass to mysqldump
[--tables=]
The comma separated list of specific tables to export. Excluding this parameter will export all tables in the database.
[--exclude_tables=]
The comma separated list of specific tables that should be skipped from exporting. Excluding this parameter will export all tables in the database.
[--porcelain]
Output filename for the exported database.
EXAMPLES
# Export database with drop query included
$ wp db export --add-drop-table
Success: Exported to 'wordpress_dbase.sql'.
# Export certain tables
$ wp db export --tables=wp_options,wp_users
Success: Exported to 'wordpress_dbase.sql'.
# Export all tables matching a wildcard
$ wp db export --tables=$(wp db tables 'wp_user*' --format=csv)
Success: Exported to 'wordpress_dbase.sql'.
# Export all tables matching prefix
$ wp db export --tables=$(wp db tables --all-tables-with-prefix --format=csv)
Success: Exported to 'wordpress_dbase.sql'.
# Skip certain tables from the exported database
$ wp db export --exclude_tables=wp_options,wp_users
Success: Exported to 'wordpress_dbase.sql'.
WordPress via WP-CLI aktualisieren
Zuerst müssen Sie die aktuelle Version von WordPress überprüfen, die Sie haben:
username@servername [~/WordPress/location]# wp core version
5.2.1
Wenn Sie Ihren WordPress-Core auf eine neuere Version aktualisieren möchten, können Sie dies über den folgenden Befehl tun:
username@servername [~/WordPress/location]# wp core update
Updating to version 4.8.1 (en_US)...
Downloading update from https://downloads.wordpress.org/release/wordpress-4.8.1-partial-0.zip...
Unpacking the update...
Success: WordPress updated successfully.
WordPress Plugins mit WP-CLI aktualisieren
Wenn Sie zusätzliche Plugins oder Themes auf Ihrer WordPress-Website aktualisieren möchten, können Sie dies mit WP-CLI tun. Um beispielsweise den Status der aktuell installierten Plugins zu überprüfen, verwenden Sie diesen Befehl:
username@servername [~/WordPress/location]# wp plugin list
+----------------+----------+-----------+---------+
| name | status | update | version |
+----------------+----------+-----------+---------+
| akismet | active | available | 3.3.2 |
| google-captcha | active | none | 1.31 |
| hello | inactive | none | 1.6 |
| jetpack | active | none | 5.3 |
| sg-cachepress | active | none | 3.3.2 |
+----------------+----------+-----------+---------+
Wir haben 5 Plugins in unsere Beispielinstallation integriert. Für einen gibt es ein Upgrade. Um ein Upgrade für dieses Plugin durchzuführen, kann der folgende Befehl verwendet werden:
username@servername [~/WordPress/location]# wp plugin update akismet
Enabling Maintenance mode...
Downloading update from https://downloads.wordpress.org/plugin/akismet.3.3.4.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
Disabling Maintenance mode...
+---------+-------------+-------------+---------+
| name | old_version | new_version | status |
+---------+-------------+-------------+---------+
| akismet | 3.3.2 | 3.3.4 | Updated |
+---------+-------------+-------------+---------+
Success: Updated 1 of 1 plugins.
WordPress-Plugins > Themes über WP-CLI installieren und aktivieren
Um ein neues Plugin zu installieren und zu aktivieren, führen Sie die folgenden Befehle aus:
wp plugin install Plugin_Name
wp plugin activate Plugin_Name
Sie sollten die Zeichenkette “Plugin_Name” durch den genauen Plugin-Namen ersetzen.
Installation und Verwendung von WP Doctor
WP Doctor ist ein Werkzeug, das entwickelt wurde, um bei der Diagnose von Problemen mit WordPress-Websites wie fehlgeschlagenes Update, leere Seite, Upload-Probleme, usw. zu helfen. Um das Tool zu verwenden, sollten Sie es zuerst installieren. Sie können das tun, indem Sie den folgenden Befehl im Root-Verzeichnis Ihrer WordPress-Website ausführen:
wp package install git@github.com:wp-cli/doctor-command.git
Nachdem das Tool erfolgreich installiert wurde, können Sie es mit dem Befehl wp doctor verwenden.
Um alle verfügbaren Optionen des Befehls zu überprüfen, verwenden Sie:
wp doctor --help
Um alle Standardprüfungen auszuführen, führen Sie den folgenden Befehl aus:
wp doctor check --all
Die Prüfungen, die das Tool ausführen wird, sind:
core-verify-checksums – Überprüft, ob WordPress mit seinen Checksummen übereinstimmt.
file-eval – Überprüft Dateien im Dateisystem auf Regex-Muster eval (.*base64_decode (.*), was in vielen Fällen auf verdächtigen Code hinweist.
cache-flush – Erkennt die Anzahl der Vorkommen der Funktion wp_cache_flush () .
autoload-options-size – Warnt, wenn die Größe von automatisch geladenen Optionen den Schwellenwert von 900 kb überschreitet.
constant-savequeries-falsy – Bestätigt den erwarteten Zustand der SAVEQUERIES Konstante. SAVEQUERIES bewirkt, dass WordPress einen Backtrace für jede SQL-Anfrage speichert, was eine ressourcenintensive Operation ist, daher wird von der Verwendung von SAVEQUERIES in der Produktion abgeraten.
constant-wp-debug-falsy- Überprüft, ob WP Debugging aktiviert ist, indem der Status der Konstanten WP_DEBUG überprüft wird.
core-update – Überprüft, ob die Anwendung aktuell ist. Fehler werden angezeigt, wenn eine neue Version von WordPress verfügbar ist; warnt vor einer größeren Veröffentlichung.
cron-count – Überprüft die Anzahl der Cron-Jobs und zeigt einen Fehler an, wenn mehr als 50 registrierte Cron-Jobs registriert sind.
cron-duplicates – Überprüft die Anzahl der duplizierten Cron-Jobs und zeigt eine Fehlermeldung an, wenn mehr als 10 duplizierte Cron-Jobs registriert sind.
option-blog-public – Überprüft, ob die Website öffentlich verfügbar ist, indem der Wert der Option blog_public überprüft wird.
plugin-active-count – Zeigt eine Warnung an, wenn mehr als 80 Plugins aktiviert sind.
plugin-disabled – Warnt, wenn mehr als 40% der Plugins deaktiviert sind.
plugin-update – Zeigt eine Warnung an, wenn Plugin-Updates verfügbar sind
theme-update – Warnt, wenn Theme-Updates verfügbar sind.
php-in-upload – Zeigt eine Warnung an, wenn eine PHP-Datei im Ordner Uploads vorhanden ist.
language-update – Überprüft, ob es eine neue Version der installierten Sprache gibt.
Wenn Sie nur eine oder einige der obigen Prüfungen durchführen möchten, können Sie diese einfach angeben, anstatt die Funktion –all zu benutzen. Sie können überprüfen, wie das in den beiden folgenden Beispielen aussieht:
wp doctor check autoload-options-size
oder
wp doctor check autoload-options-size core-verify-checksums
Installation und Verwendung von WP Profile
WP Profile ist ein Tool, das entwickelt wurde, um bei der Diagnose von Problemen mit langsamen WordPress-Websites zu helfen. Die Hauptidee der Erweiterung ist es, den Ladevorgang in Stufen aufzuteilen und dann die Möglichkeit zu geben, jeden von ihnen zu verfolgen. Es liefert Informationen über Timings, Callbacks und Orte. Um das Tool zu verwenden, sollten Sie es zuerst installieren. Sie können das tun, indem Sie den folgenden Befehl im Stammverzeichnis Ihrer WordPress-Website ausführen:
wp package install wp-cli/profile-command
Nachdem das Tool erfolgreich installiert wurde, können Sie es mit dem Befehl wp profile verwenden.
Um alle verfügbaren Optionen des Befehls zu überprüfen, verwenden Sie:
wp profile --help
Die Unterbefehle von wp profile sind:
- eval- Profiliert einen beliebigen Code. Arbitrary Code Execution (ACE) wird verwendet, um die Fähigkeit eines Angreifers zu beschreiben, beliebige Befehle oder Code auf einer Ziel-Website auszuführen
- eval file – Profiliert eine beliebige Datei.
- hook – Profiliert Key Metrics für WordPress Hooks (Aktionen und Filter).
- stage – Profiliert jede Phase des Ladevorgangs von WordPress (bootstrap, main_query, template).
Um das langsame Laden einer Website zu untersuchen, beginnen Sie mit dem Unterbefehl stage, wie unten gezeigt:
wp profile stage
Sie sollten das im Root-Verzeichnis Ihrer Website ausführen. Die Ausgabe ist eine Tabelle mit Informationen über den Ladevorgang Ihrer Website. Die wichtigsten Spalten dieser Tabelle sind:
- Stage – Die Stufen sind 3- bootstrap , main_query , template . In ein paar einfachen Worten- Bootstrap ist, wo WordPress sich einrichtet, Plugins und das Hauptthema lädt und den init-Hook auslöst, main_query ist, wie WordPress mit Anfragen umgeht und template ist der Ort, an dem WordPress basierend auf der Hauptabfrage bestimmt, welches Theme-Template gerendert werden soll, und rendert es.
- Time – Zeigt die Zeit an, die jede Stufe zum Laden benötigt.
- Cache ratio – Zeigt den Prozentsatz des Caching auf den verschiedenen Stufen an.
Prüfen Sie, welche der Phasen die meiste Zeit zum Laden benötigt (z.B. bootstrap) und führen Sie den folgenden Befehl aus:
wp profile stage bootstrap --spotlight
Verwenden Sie-spotlight, um die Nullwerte zu filtern.
Was WordPress-Instanzen normalerweise verlangsamt, sind nicht die Kernfunktionen, sondern die Plugins. Verfolgen Sie sie mit:
wp profile hook plugins_loaded --fields=callback,time,location --spotlight
Die Ausgabe dieses Befehls liefert Informationen über die Ladezeiten der verschiedenen Plugins.
Andere Aufgaben, die Sie mit WP-CLI erledigen können
Sie können Beiträge direkt von der Befehlszeile aus schreiben. Um einen Beitrag zu erstellen, verwenden Sie den folgenden Befehl:
username@servername [~/WordPress/location]# wp post create --post_type=page --post_status=publish --post_title='My test post' --post_content='This is a test post'
Success: Created post 18.
Wenn Sie einen bestimmten Beitrag nicht benötigen, können Sie ihn ganz einfach löschen:
username@servername [~/WordPress/location]# wp post delete 18
Success: Trashed post 18.
Sie können auch ein Backup der WordPress-Datenbank über WP-CLI erstellen, indem Sie den folgenden Befehl verwenden:
username@servername [~/WordPress/location]# wp db export
Success: Exported to 'username_wp123-3150ba8.sql'.
Wenn Sie sich entscheiden, die primäre Domain für die WordPress-Website zu ändern, können Sie die entsprechenden URL-Optionen leicht aktualisieren:
wp option update home https://newdomain.com
wp option update siteurl https://newdomain.com
Weitere Informationen zu WP-cli finden Sie über den Befehl help und die Homepage des Projekts.