Développeur FullStack & Devops

Notes et mémos techniques

Wordpress en ligne de commande: wp-cli

wp-cli est l'outil officiel de gestion de Wordpress en ligne de commande (CLI). Il permet notamment :

  • d'installer Wordpress
  • d'installer des plugins ou des thèmes Wordpress
  • mettre à jour la version d'une installation Wordpress existante et d'accéder plus généralement aux fonctionnalités coté admin en ligne de commande
  • sauvegarder son installation Wordpress

voir liste des commandes

Installer et mettre à jour wp-cli

Installation

Le process d'installation consiste à récupérer l'outil (qui est un script php, fichier .phar), et de le rendre disponible dans le PATH

  1. Installer wp-cli avec curl :
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  1. vérifier l'installation
php wp-cli.phar --info
  1. rendre exécutable le fichier .phar
sudo chmod +x wp-cli.phar
  1. déplacer le script dans /usr/local/bin, pour la rendre exécutable depuis le PATH et la renommer pour simplifier wp-cli.phar en wp-cli
sudo mv wp-cli.phar /usr/local/bin/wp-cli
  1. créer un raccourci (symlink) pour avoir votre PATH la commande wp-cli mais aussi wp
sudo ln -s /usr/local/bin/wp-cli /usr/local/bin/wp
  1. vérifier l'accessibilité de la nouvelle commande wp
wp --info

voir doc officielle

Mise à jour

Le script wp-cli se met à jour simplement via la commande

wp cli update

Utilisation de wp-cli

A partir de là vous pouvez effectuer une fresh install de wordpress, effectuer une mise à jour de votre installation Wordpress, installer un theme ou un plugin en 1 commande 🎉 !

Pour l'ensemble des commandes wp il existe un ensemble d'options communes appelés paramètres globaux (ex --path).

sudo wp-cli

L'utilisation de sudo avec la commande wp nous affiche des messages auxquelles il faut preter attention, cependant si elles nécessitent sudo, il existe l'option --allow-root de wp (cas d'usage : docker containers).

Plus récement depuis la version 2.6.0 du wp cli, une variable d'environnement WP_CLI_ALLOW_ROOT permet de s'affranchir de cette option.

Upgrade de Wordpress en 30sec

Pour mettre a jour sa version de Wordpress, ses thèmes, plugins :

# Mettre à jour l'instance Wordpress
wp core update --path='/var/www/wordpress' --allow-root

# Mise à jour de tous les Thèmes
wp theme update twentyfifteen twentysixteen
# Passage en mode auto update de tous les Thèmes (recommandé)
wp theme auto-updates enable --all

# Mise à jour de tous les Plugins
wp plugin update --all
# Passage en mode auto update de tous les Plugins (recommandé)
wp plugin auto-updates enable --all

Mode maintenance

wp-cli nous permet d'activer un mode "maintenance" avec wp maintenance-mode

Activates, deactivates or checks the status of the maintenance mode of a site.

wp maintenance-mode <command>
  activate        Activates maintenance mode.
  deactivate      Deactivates maintenance mode.
  is-active       Detects maintenance mode status.
  status          Displays maintenance mode status.

Migration de nom de domaine

  • tester si une instance de WP tourne actuellement pour l'installation souhaitée:
wp core is-installed --path='/var/www/wordpress'
  • effectuer un backup complet de la base WP dans un .sql avec wp db export :
wp db export --path='/var/www/wordpress' nom_de_mon_dump.sql
  • la commande search n'existant pas, il faut ruser et utiliser wp search-replace avec l'option --dry-run pour rechercher un élément :
wp search-replace http://ancien.com http://nouveau.com --path='/var/www/wordpress' --dry-run
  • modifier en base toutes les occurences de l'ancien nom de domaine avec wp search-replace :
wp search-replace 'http://ancien.com' 'http://nouveau.com' --path='/var/www/wordpress'

Reset du mot de passe d'un utilisateur

Il est possible de modifier le mot de passe d'un utilisateur quelconque, notamment de l'admin sur une instance Wordpress spécifique:

wp user list  pour récupérer la liste des utilisateurs enregistrés, ainsi que leurs roles puis wp user update :

wp user update login_de_l_utilisateur --user_pass="nouveau_mot_de_passe"  --path='/var/www/wordpress/'
linux
productivite
shell
wordpress
cli
wp-cli
cms
rédigé le 19/05/18, mis à jour le 09/03/22 par Behrouze
A proposCheat SheetsOutilsVidéos