WP-CLI est l’outil de gestion de WordPress en ligne de commande sous Linux, il permet notamment d’installer WordPress, des plugins, sauvegarder, 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.

WP-CLI

Installer wp-cli

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

  1. Installer wp-cli
    curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  2. vérifier l’installation php wp-cli.phar --info
  3. rendre exécutable le fichier .phar
    sudo chmod +x wp-cli.phar
  4. 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
  5. créer un raccourci (symlink) pour avoir votre PATH la commande wp-cli mais aussi wp
    sudo -u www-data ln -s /usr/local/bin/wp-cli /usr/local/bin/wp
    chmod 750 /usr/local/bin/wp
  6. vérifier l’accessibilité de la nouvelle commande wp wp --info
  7. l’usage de wp nécessitera parfois un sudo -u www-data pour autoriser l’accès à certains fichiers php de WordPress

Mette à jour wp-cli

Le script wp-cli peut lui même être mis à jour et cela ne se fait pas automatiquement, mais il peut simplement se mettre à jour via :
wp cli update

Utilisation de wp-cli

Installer WordPress avec wp-cli

A partir de là vous pouvez effectuer une fresh install de wordpress ou effectuer une mise à jour de votre installation WordPress, il suffit de

sudo wp core update --path='/var/www/wordpress' --allow-root

Bien sure avec la Debian (Ubuntu etc.) le wp-config.php étant déplacé dans /etc cette commande ne fonctionne pas… il faut alors télécharger la dernière version dans le dossier de WordPress (à vos risques et périlles, backup de tout le dossier avant cette manip) avec la commande:

sudo -u www-data wp core download --force

vérifier la version de WordPress fraichement téléchargée:

find /var/www/wordpress/ -name 'version.php' -exec grep '$wp_version =' {} \;

Mise à jour de WordPress

Il est possible de vérifier la version installée et de la mettre à jour via:
wp core check-update
wp core update

Migration de nom de domaine

  • tester si une instance de WP tourne actuellement pour l’installation souhaitée:
    wp core is-installed --allow-root --path='/var/www/wordpress'
  • effectuer un backup complet de la base WP dans un .sql
    wp db export --allow-root nom_de_mon_dump.sql
  • modifier en base toutes les occurences de l’ancien nom de domaine:
    wp search-replace 'http://ancien.com' 'http://nouveau.com' --allow-root

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 login_de_l_utilisateur --user_pass="nouveau_mot_de_passe"  --path='/var/www/wordpress/'

Extensions WordPress

Pour en obtenir la liste puis la mettre à jour:

wp plugin list --path='/var/www/xxx'
wp plugin update --all

Thèmes WordPress

Idem pour les thèmes installés:

wp theme status
wp theme update --all