Maîtriser WordPress avec WP-CLI : l’interface en ligne de commande ultime pour les développeurs et utilisateurs avancés

Maîtriser WordPress avec WP-CLI : l’interface en ligne de commande ultime pour les développeurs et utilisateurs avancés

WP-CLI est un outil incontournable pour les utilisateurs de WordPress. Il permet de gérer efficacement un site en utilisant des lignes de commande dans un terminal. Cet article vous présentera les principales commandes de WP-CLI et comment les utiliser pour améliorer votre productivité avec WordPress.

Envie de vous prendre pour un hacker chevronné ou un personnage tout droit sorti de l’univers de Matrix ? C’est possible en partant à la découverte de WP-CLI, l’acronyme de WordPress Command Line Interface. Vous avez bien lu, notre CMS favori fonctionne également en ligne de commande.

Pourquoi utiliser WP-CLI ?

Soyons honnêtes, le recours à la ligne de commande est bien souvent réservé aux développeurs. Cela dit, je recommande à tous les profils d’utilisateurs de comprendre les notions de base et, pourquoi pas, de tester quelques commandes pour découvrir l’outil sur une installation de test de WordPress.

Ainsi, vous pourrez :

  • Être en mesure de communiquer plus efficacement avec vos équipes techniques ;
  • Découvrir de nouvelles fonctionnalités cachées du cœur de WordPress ou de vos extensions favorites ;
  • Exécuter des tâches lourdes qui ne font pas tomber le serveur ;
  • Créer des automatisations à l’aide de scripts capables d’embarquer des commandes WP-CLI ;

Les usages sont nombreux et vous en trouverez d’autres par vous-même au fur et à mesure de vos avancées.

À titre d’exemple, j’utilise WP-CLI pour déployer rapidement de nouvelles instances de WordPress selon un environnement de travail bien précis avec notamment l’installation personnalisée de WordPress et le téléchargement d’un thème de démarrage fait-maison depuis un dépôt git.

Le gain de temps obtenu est phénoménal : les tâches rébarbatives appartiennent au passé et vous pouvez vous concentrer sur celles qui génèrent le plus de valeur ajoutée pour votre activité professionnelle.

Comment installer WP-CLI ?

Pour utiliser WP-CLI, vous devez d’abord l’installer au sein de votre environnement de travail – aussi bien en développement qu’en production. Cela signifie que vous devez disposer d’un serveur Web, soit en local à l’aide de MAMP ou Local par exemple, soit chez un hébergeur en ligne comme o2switch. Le tutoriel décrit ici fonctionne pour un environnement à base UNIX, c’est-à-dire sous macOS ou Linux. Pour les utilisateurs de Windows, le support est plus limité.

Notez que de nombreux hébergeurs comme o2switch proposent nativement WP-CLI et qu’il n’est donc pas nécessaire d’installer cet ensemble d’outils. Vous pouvez vérifier sa présence en lançant un terminal depuis le répertoire de votre projet WordPress puis en exécutant la commande wp.

Pour les autres, nous allons devoir télécharger une archive au format Phar, une sorte d’archive compressée que l’on peut manipuler sans décompression. Ouvrez donc un terminal, puis lancez cette commande qui va télécharger le fichier dans le répertoire de base :

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Vérifiez que tout fonctionne avec cette nouvelle commande. Elle consiste à exécuter une commande PHP sur le fichier téléchargé avec le paramètre --info pour retourner des informations de base :

php wp-cli.phar --info

Dès maintenant, vous pouvez utiliser WP-CLI mais il nous manque une dernière étape pour disposer de la commande wp sans devoir saisir à chaque fois php wp-cli.phar en début de chaque commande. Pour ce faire, lancez ces 2 nouvelles commandes :

chmod  x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

La première commande permet de rendre exécutable globalement le fichier Phar, la seconde déplace ce dernier dans votre répertoire local.

Vérifiez de nouveau que tout fonctionne comme attendu en exécutant cette fois-ci la commande simplifiée :

wp --info

Vous obtiendrez instantanément une série d’informations utiles sur votre installation WordPress dont voici un échantillon :

[email protected] wpchannel % wp --info      
OS: Darwin 22.2.0 Darwin Kernel Version 22.2.0: Fri Nov 11 02:08:47 PST 2022; root:xnu-8792.61.2~4/RELEASE_X86_64 x86_64
Shell: /bin/zsh
PHP binary: /Applications/MAMP/bin/php/php8.0.24/bin/php
PHP version: 8.0.24
php.ini used: /Applications/MAMP/bin/php/php8.0.24/conf/php.ini
MySQL binary: /Applications/MAMP/Library/bin//mysql
MySQL version: mysql Ver 14.14 Distrib 5.7.34, for osx10.12 (x86_64) using EditLine wrapper
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/aurelien/Sites/wpchannel
WP-CLI packages dir: /Users/aurelien/.wp-cli/packages/
WP-CLI cache dir: /Users/aurelien/.wp-cli/cache
WP-CLI global config: /Users/aurelien/.wp-cli/config.yml
WP-CLI project config: /Users/aurelien/Sites/wpchannel/wp-cli.yml
WP-CLI version: 2.7.1

Comment activer l’autocomplétion dans WP-CLI ?

Les scripts d’autocomplétion sont très utiles au quotidien. Ils permettent de saisir les premières lettres d’une commande, d’appuyer sur la touche tabulation, puis de suggérer la suite sans avoir à la saisir. Là encore, c’est non seulement un gain de temps important mais également un moyen imparable de réduire le risque d’erreur de saisie.

L’opération est toute simple mais nécessite de connaître au préalable le type de shell que vous utilisez. Les vieilles machines seront sous Bash, les plus récentes sur ZSH (recommandé).

Commencez par télécharger ce fichier en l’enregistrant sur ordinateur dans le répertoire de votre choix – par exemple, le dossier Sites.

WP-CLI, scripts d'autocomplétion

Compatible avec les shells Bash et ZSH.

Taille : 495 o  • Hits : 8

Modifiez ensuite votre profil Bash ou ZSH à l’aide du terminal ou d’un simple éditeur de texte. Il s’agit d’un fichier caché nommé .bash_profile ou .zshrc, situé à la racine de votre répertoire utilisateur et contenant des instructions pour personnaliser votre expérience dans le terminal.

Pour les shells ZSH, ajoutez ces 3 lignes de texte. Pour les shells Bash, seule la 3e ligne contenant le chemin complet vers les scripts d’autocomplétion est utile :

autoload bashcompinit
bashcompinit
source /Users/aurelien/Sites/wp-completion.bash

Pensez à remplacer la ligne 3 par le chemin vers le fichier d’autocomplétion que vous venez de télécharger.

Relancer le Terminal puis testez une commande WP-CLI comme wp plugin en tapant simplement les premières lettres puis en appuyant sur la touche tabulation. L’outil vous proposera automatiquement les possibilités qui s’offrent à vous.

Pratique, vous ne trouvez pas ?

Quelles sont les commandes WP-CLI les plus utilisées ?

Maintenant que vous disposez d’un environnement capable d’exécuter des commandes WP-CLI, je vous livre ici une sélection personnelle de commandes que j’affectionne tout particulièrement dans mon quotidien de développeur.

Il est courant que vos extensions proposent leurs propres commandes ce qui facilitera grandement vos tâches d’automatisation. Soyez curieux en parcourant les documentations officielles de vos extensions favorites, vous serez surpris de l’étendue des possibilités offertes par la ligne de commande.

Mettre à jour WordPress

wp core update

Cette commande permet de mettre à jour WordPress.

Mettre à jour toutes les extensions

wp plugin update --all

Cette commande permet de mettre à jour toutes les extensions en attente de mise à jour.

Installer et activer une extension

wp plugin install nomduplugin --activate

Cette commande installe l’extension spécifiée et l’active immédiatement.

Exporter la base de données MySQL

wp db export

Cette commande exporte la base de données au format SQL. Très utile pour récupérer une sauvegarde des données avec une fiabilité garantie.

Importer la base de données MySQL

wp db import nomfichier.sql

Cette commande importe la base de données, elle peut être exécutée en complément de la précédente.

Rechercher et remplacer en masse

wp search-replace 'ancienne-valeur' 'nouvelle-valeur'

Cette commande effectue un rechercher et remplacer dans la base de données d’une valeur par une autre. Très puissante, je vous recommande vivement de lire la documentation spécifique à cette commande pour en connaître les subtilités.

Régénérer les miniatures en masse

wp media regenerate --yes

Cette commande régénère les tailles d’images additionnelles pour l’ensemble de vos fichiers médias présents dans votre bibliothèque. Aucune confirmation ne sera affichée, c’est sans aucune doute ma commande favorite pour agir en masse et sans délai d’exécution sur de gros volumes de données à traiter.

Supprimer tout les contenus en masse

wp post delete $(wp post list --post_type='product' --format=ids) --force

Cette commande supprime tout les contenus pour un type de contenu donné comme ici avec les produits d’un site avec WooCommerce. Vous pouvez remplacer --post_type par le type de contenu de votre choix comme post pour les articles ou page pour les pages standards.

Régénérer les clés de salage du fichier de configuration

wp-config shuffle-salts

Cette commande régénère les clés de salage présentes dans le fichier wp-config.php. Il existe de nombreuses commandes pour interagir avec le fichier de configuration WordPress. Vous pouvez notamment automatiser la création de celui-ci selon des préférences personnalisées.

Retrouvez la liste complète des commandes WP-CLI dans la documentation dédiée aux développeurs.

WP-CLI en résumé

En utilisant WP-CLI, les développeurs peuvent gagner beaucoup de temps et d’efficacité dans leur travail quotidien avec WordPress. Que ce soit pour les tâches courantes telles que la gestion des utilisateurs ou des extensions, ou pour des tâches plus avancées telles que la mise à niveau de plusieurs sites en une seule commande, WP-CLI offre une interface en ligne de commande puissante et facile à utiliser pour les développeurs de tout niveau. De plus, il permet une automatisation efficace des tâches répétitives, ce qui permet aux développeurs de se concentrer sur des choses plus importantes.

En somme, l’utilisation de WP-CLI est un outil essentiel pour les développeurs travaillant avec WordPress que je ne peux que vous conseiller d’utiliser sans modération. Je serais également curieux de connaître les usages que vous en faîtes et vos commandes préférées !

Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

Laisser un commentaire