WordPress mit WP-CLI konfigurieren
Ich mache ja nicht mehr sonderlich viel mit WordPress. Aber wenn ich mal muss, kommt es nicht selten vor, dass ich mich aufrege. Den größten Ärger bereitet mir wohl die Tatsache, dass die Domain für SiteURL und Home in der Datenbank gespeichert werden und ich beim Umzug (von Dev auf Stage, von Stage auf Production) immer wieder an die Datenbank muss.
Dem nicht genug, werden zum Teil auch Bild-Pfade im Inhalt mit Domain in der Datenbank gespeichert, sodass oftmals nichts anderes übrig bleibt, als im Datenbank-Dump per Suchen+Ersetzen alle Domain-Einträge anzupassen.
Nun stieß ich heute bei meinen Recherchen auf das offizielle Kommandozeilenwerkzeug WP-CLI. Hiermit soll es möglich sein, auf der Konsole diverse Aufgaben auszuführen, WordPress-Optionen zu ändern und sogar die Datenbank per Suchen+Ersetzen zu bearbeiten. Das wollte ich mir dann doch näher anschauen.
Ich installierte mir also mittels
curl -O raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Ein kurzer Test über
php wp-cli.phar --info
sollte uns bereits ein paar Informationen über über Betriebssystem, PHP-Version und WP-CLI-Parameter ausspucken.
Es gibt natürlich auch noch andere Möglichkeiten, WP-CLI zu installieren, darunter z.B. Composer, Homebrew, Docker, Git.
Nun müssen wir dem Script noch die nötigen Ausführungsrechte geben.
chmod +x wp-cli.phar
Wer über die nötigen Rechte auf dem Server verfügt, kann sich über
sudo mv wp-cli.phar /usr/local/bin/wp
die Arbeit erleichtern, um zukünftig nur noch über das Kürzel wp die Kommandozeilenwerkzeuge aufzurufen.
In meinem Beispiel fehlten mir die nötigen Rechte, also habe ich mir eine kurze Bash-Datei (wp.sh) erzeugt, die eine ähnliche Aufgabe übernehmen sollte. Der Inhalt war lediglich:
#!/bin/bash
/pfad/zu/php wp-cli.phar $1 $2 $3 $4
Damit konnte ich zumindest etwas kürzer
sh wp.sh optionen
ausführen.
Nun zu den Möglichkeiten. Ich verwende im weiteren Verlauf lediglich das Kürzel "wp" für den Aufruf des Kommandozeilenwerkzeugs.
Um WP-CLI zu aktualisieren, genügt
wp cli update
Zurück zum ursprünglichen Problem: Mit den Kommandozeilentools kann ich nun relativ einfach nach einem Umzug auf einen anderen Server oder eine andere Domain die Optionen in der Datenbank ändern:
wp option set siteurl www.neuedomain.de
wp option set home www.neuedomain.de
Sogar Suchen+Ersetzen in der Datenbank geht hiermit relativ einfach:
wp search-replace 'https://www.altedomain.de' ‘https://www.neuedomain.de’
Hier noch eine Liste aller aktuell verfügbaren Befehle:
cache Adds, removes, fetches, and flushes the WP Object Cache object.
cap Adds, removes, and lists capabilities of a user role.
cli Reviews current WP-CLI info, checks for updates, or views defined aliases.
comment Creates, updates, deletes, and moderates comments.
config Generates and reads the wp-config.php file.
core Downloads, installs, updates, and manages a WordPress installation.
cron Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.
db Performs basic database operations using credentials stored in wp-config.php.
embed Inspects oEmbed providers, clears embed cache, and more.
eval Executes arbitrary PHP code.
eval-file Loads and executes a PHP file.
export Exports WordPress content to a WXR file.
help Gets help on WP-CLI, or on a specific command.
i18n Provides internationalization tools for WordPress projects.
import Imports content from a given WXR file.
language Installs, activates, and manages language packs.
maintenance-mode Activates, deactivates or checks the status of the maintenance mode of a site.
media Imports files as attachments, regenerates thumbnails, or lists registered image sizes.
menu Lists, creates, assigns, and deletes the active theme's navigation menus.
network Perform network-wide operations.
option Retrieves and sets site options, including plugin and WordPress settings.
package Lists, installs, and removes WP-CLI packages.
plugin Manages plugins, including installs, activations, and updates.
post Manages posts, content, and meta.
post-type Retrieves details on the site's registered post types.
rewrite Lists or flushes the site's rewrite rules, updates the permalink structure.
role Manages user roles, including creating new roles and resetting to defaults.
scaffold Generates code for post types, taxonomies, plugins, child themes, etc.
search-replace Searches/replaces strings in the database.
server Launches PHP's built-in web server for a specific WordPress installation.
shell Opens an interactive PHP console for running and testing PHP code.
sidebar Lists registered sidebars.
site Creates, deletes, empties, moderates, and lists one or more sites on a multisite installation.
super-admin Lists, adds, or removes super admin users on a multisite installation.
taxonomy Retrieves information about registered taxonomies.
term Manages taxonomy terms and term meta, with create, delete, and list commands.
theme Manages themes, including installs, activations, and updates.
transient Adds, gets, and deletes entries in the WordPress Transient Cache.
user Manages users, along with their roles, capabilities, and meta.
widget Manages widgets, including adding and moving them within sidebars.
wpml
Ich werde hier definitiv mal weiter experimentieren und diesen Beitrag erweitern.
Comments
No Comments