In diesem Beitrag habe ich ein paar Kommandos zusammengefasst, die meines Erachtens unbedingt Erwähnung finden sollten, für die jedoch gleichzeitig kein eigener Beitrag erstellt werden muss. Letztlich geht es hier darum, Interesse zu wecken, und kein zweites wp-cli-Handbuch zu schreiben. 😉
Suchen und ersetzen
Mit dem Kommando search-replace
kann eine Zeichenfolge in einer, mehreren oder allen Tabellen der Datenbank geändert werden. Die Option --dry-run
erlaubt es, sich die durchzuführenden Änderungen erstmal nur anzeigen zu lassen.
$ wp @blog search-replace 'dirk@bei3' 'admin@bei3' wp_users --dry-run
+----------+---------------------+--------------+------+
| Table | Column | Replacements | Type |
+----------+---------------------+--------------+------+
| wp_users | user_login | 1 | SQL |
| wp_users | user_nicename | 0 | SQL |
| wp_users | user_email | 1 | SQL |
| wp_users | user_url | 0 | SQL |
| wp_users | user_activation_key | 0 | SQL |
| wp_users | display_name | 0 | SQL |
+----------+---------------------+--------------+------+
Success: 2 replacements to be made.
$ wp @blog search-replace 'niebegeg.net' 'bei3.net'
+------------+-----------------------+--------------+------+
| Table | Column | Replacements | Type |
+------------+-----------------------+--------------+------+
...
| wp_options | option_value | 13 | PHP |
...
| wp_posts | post_content_filtered | 10 | SQL |
| wp_posts | guid | 206 | SQL |
...
| wp_users | display_name | 0 | SQL |
+------------+-----------------------+--------------+------+
Success: Made 243 replacements.
Das ist sehr hilfreich, wenn die Website auf eine neue Domain umzieht und alle URLs angepasst werden müssen.
Benutzer verwalten
Benutzer können leicht erstellt, geändert, gelöscht, aufgelistet und mit Details angezeigt werden.
$ wp @blog user list --role=administrator
+--+----------+------------+----------+---+-------------+
|ID|user_login|display_name|user_email|...|roles |
+--+----------+------------+----------+---+-------------+
|1 | Admini | Admini |d@bei3.net|...|administrator|
+--+----------+------------+----------+---+-------------+
$ wp @blog user get Admini
+-----------------+---------------------+
| Field | Value |
+-----------------+---------------------+
| ID | 1 |
| user_login | Admini |
| user_email | d@bei3.net |
| ... | ... |
| roles | administrator |
+-----------------+---------------------+
$ wp @blog user create dirk dirk@example.org --role=author \
--user_pass=kjfhwjhfw --display_name="Der Autor" --send-email
Success: Created user 2.
$ wp @blog user reset-password dirk
Reset password for dirk.
Success: Password reset.
$ wp @blog user delete dirk --reassign=1
Success: Removed user 2 from https://abc.de.
Beiträge verwalten
Blogbeiträge und Seiten können verwaltet werden. So lassen sich Beiträge freigeben oder zurückziehen, erstellen und löschen, Metadaten editieren und auch sich eine Liste von Beiträgen nach beliebigen Kriterien und in verschiedenen Formaten (CSV, JSON, YAML, …) erstellen lassen.
wp @blog post list --post_type=post --post_status=draft --fields=post_title,post_date
+---------------------------------------------------------+---------------------+
| post_title | post_date |
+---------------------------------------------------------+---------------------+
| Und sonst noch? | 2019-12-11 22:13:04 |
| | 2019-12-07 15:42:39 |
| Schnellzugriff auf WordPress-Installationen mit Aliases | 2019-12-05 22:39:08 |
| Eine Kommandozeile für WordPress: wp-cli | 2019-12-05 22:36:46 |
| Versionen! - Software-Updates mit wp-cli | 2019-12-05 22:31:36 |
| WordPress installieren mit wp-cli | 2019-12-05 22:31:36 |
| wp-cli - die Basics | 2019-12-05 22:31:36 |
+---------------------------------------------------------+---------------------+
Was mit Datenbanken
wp-cli ermöglicht es sehr einfach, Datenbanken in eine Datei zu schreiben, diese wieder einzulesen, die Datenbank zu optimieren, das Datenbankschema zu analsyieren sowie ein Eingabefenster am Datenbak-Prompt zu öffnen (und viel, viel mehr).
$ wp @blog db export "wp-$(date +'%Y%M%d-%H%m%S').sql"
Success: Exported to 'wp-20191411-060908.sql'.
$ wp @blog db import ~/wp-20191411-060908.sql
Success: Imported from '/home/dirk/wp-20191411-060908.sql'.
$ wp @blog db columns wp_options
+--------------+---------------------+------+-----+---------+---------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------------+------+-----+---------+---------------+
| option_id | bigint(20) unsigned | NO | PRI | |auto_increment |
| option_name | varchar(191) | NO | UNI | | |
| option_value | longtext | NO | | | |
| autoload | varchar(20) | NO | | yes | |
+--------------+---------------------+------+-----+---------+---------------+
$ wp @blog db cli
Welcome to the MySQL monitor. Commands end with ; or \g.
…
Mysql> _
Ebenso sind einfache Suchen nach Zeichenketten möglich. Es wird dabei über alle oder eine vorzugebende Menge an tabellen gesucht und alle Treffer mit der enthaltenden Tabelle und Spalte aufgelistet.
$ wp @blog db search dirk
wp_users:user_email
1:dirk@bei3.net
Es können neben der Datenbankkonsole (mit dem Kommando db cli
) auch umfangreichere SQL-Anfragen durchgeführt werden.
$ wp @blog db query 'select ID, user_email from wp_users where ID=1;'
+----+---------------+
| ID | user_email |
+----+---------------+
| 1 | dirk@bei3.net |
+----+---------------+
Die Aufzählung der Kommandos liese sich lang fortsetzen, aber all das ist schon auf https://wp-cli.org/ und https://make.wordpress.org/cli/handbook/ dokumentiert und diese „Kurzvorstellung“ sollte genügen, um alle diejenigen neugierig zu machen, die eine WordPress-Website zu verwalten haben.