vendredi 25 septembre 2026

À propos

Contact

Outils & workflow

WP-CLI : 15 commandes qui changent vraiment le quotidien d’un développeur

Terminal ouvert, base à jour, cache vidé : WP-CLI remplace des dizaines de clics par une ligne. Voici les commandes que j'utilise vraiment, chaque jour.

Par Clément Hadrot • 11 février 2020 • 5 min de lecture • Aucun commentaire
WP-CLI : 15 commandes qui changent vraiment le quotidien d'un développeur

Il y a encore des développeurs WordPress qui n’ont jamais ouvert un terminal pour autre chose que lancer npm install. C’est dommage, parce que WP-CLI transforme des tâches qui prennent cinq minutes dans l’administration en une commande qui s’exécute en deux secondes. Pas besoin de charger tout le poids de wp-admin, ses scripts et ses requêtes : on parle directement à WordPress depuis la ligne de commande.

Je ne vais pas vous refaire la documentation officielle : elle est déjà excellente. À la place, voici les commandes que j’utilise réellement, chaque semaine, sur les sites que je maintiens — celles qui ont remplacé des habitudes prises dans l’admin.

Créer et configurer un site en une ligne

Pour un environnement de test rapide, plus besoin de suivre l’assistant d’installation en cinq écrans :

wp core download --locale=fr_FR
wp config create --dbname=test --dbuser=root --dbpass=root
wp core install --url=test.local --title="Site de test" \
  --admin_user=admin --admin_password=admin --admin_email=admin@test.local

Trois commandes, un site fonctionnel. J’y ajoute souvent wp plugin install et wp theme activate à la suite, dans un petit script bash que je réutilise pour chaque nouveau projet.

Rechercher-remplacer sans tout casser

C’est la commande qui m’a le plus fait gagner de temps : wp search-replace. Contrairement à un remplacement SQL brutal, elle comprend les données sérialisées de WordPress (les options de thème, les réglages de widgets, certains champs personnalisés) et recalcule correctement la longueur des chaînes.

wp search-replace 'http://site.local' 'https://site-production.fr' \
  --skip-columns=guid --precise --report-changed-only
L'essentiel à retenir : Installer un site complet en une commande ; Rechercher-remplacer sans casser les données sérialisées ; Automatiser plugins, thèmes et utilisateurs

L’option --dry-run mérite d’être citée à part : elle affiche le nombre de remplacements sans rien modifier. Je l’utilise systématiquement avant une migration, pour vérifier que je ne vais pas remplacer une chaîne qui apparaît aussi dans du contenu légitime.

Gérer plugins, thèmes et utilisateurs en masse

  • wp plugin update --all pour mettre à jour tous les plugins d’un coup, à combiner avec un wp db export préalable
  • wp plugin list --status=inactive --field=name pour repérer les extensions désactivées qui traînent
  • wp user create et wp user update pour créer ou modifier des comptes sans passer par l’écran utilisateurs
  • wp post list --post_type=page --format=csv pour exporter rapidement une liste de contenus

Sur un parc de sites, ces commandes se combinent très bien avec un script qui boucle sur plusieurs installations et applique la même opération partout — je reviendrai sur cette approche dans un autre article consacré à l’administration d’un parc multi-sites.

Le cache et la base, sans passer par l’admin

wp cache flush vide le cache d’objet quand un plugin de cache le supporte. wp transient delete --all nettoie les transients périmés, une opération que je fais systématiquement après une migration de thème. Et wp db optimize lance un OPTIMIZE TABLE sur toutes les tables — utile sur un site avec beaucoup de révisions accumulées.

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

Cette ligne combine deux commandes : la première liste les identifiants de toutes les révisions, la seconde les supprime définitivement. Sur un site de dix ans avec l’auto-save actif, j’ai déjà vu cette commande faire fondre une table wp_posts de plusieurs centaines de mégaoctets.

Débuguer sans quitter le terminal

wp eval et wp eval-file permettent d’exécuter du PHP arbitraire dans le contexte de WordPress, avec accès à toutes les fonctions du cœur. C’est extrêmement pratique pour tester une fonction avant de l’intégrer dans du code, ou pour inspecter une valeur d’option :

wp eval 'var_dump( get_option( "siteurl" ) );'
wp option get siteurl

La deuxième ligne fait la même chose plus proprement, via wp option get, qui existe justement pour éviter d’écrire du PHP à la volée. Je garde wp eval pour les cas où aucune sous-commande dédiée n’existe.

Sur chaque nouveau projet, je crée un fichier wp-cli.yml à la racine avec l’URL et le chemin par défaut. Ça évite de retaper --path et --url sur chaque commande, et ça réduit nettement le risque de se tromper de site en travaillant sur plusieurs projets en parallèle.

En résumé

WP-CLI n’est pas réservé aux experts en ligne de commande : une dizaine de commandes suffisent à couvrir la majorité des tâches répétitives d’un développeur WordPress. Le vrai gain n’est pas seulement la vitesse d’exécution, c’est la possibilité de scripter, d’automatiser et de reproduire exactement la même opération sur dix sites différents sans en oublier un. Si vous ne deviez retenir que trois commandes pour commencer : wp search-replace, wp plugin update --all et wp transient delete --all.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi