Aller au contenu principal
Outils

WP-CLI : les commandes indispensables

Maîtriser WP-CLI pour gérer votre WordPress en ligne de commande comme un professionnel. Les 20 commandes à connaître.

Marie Lefebvre
Consultante WordPress
12 juillet 2025 7 min de lecture
WP-CLI : les commandes indispensables
Sommaire de l'article

WP-CLI est l'interface en ligne de commande officielle de WordPress. Pour les développeurs, les administrateurs système et les professionnels de la maintenance, c'est un outil incontournable qui permet de gérer un ou plusieurs sites WordPress sans jamais ouvrir un navigateur. Plus rapide que l'interface graphique, entièrement scriptable et automatisable, WP-CLI transforme en profondeur la façon dont on administre WordPress au quotidien.

Que vous gériez un seul site vitrine ou une infrastructure de dizaines de sites clients, WP-CLI vous fera gagner un temps considérable. Découvrez dans cet article les commandes les plus utiles, des bases jusqu'aux techniques avancées.

Installation et configuration de WP-CLI

Si WP-CLI n'est pas déjà installé sur votre serveur, l'installation ne prend que quelques secondes :

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Vérifiez l'installation avec wp --info. Pour maintenir WP-CLI à jour, utilisez wp cli update. Activez l'autocomplétion dans votre shell pour gagner encore plus de temps :

curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/main/utils/wp-completion.bash
echo "source ~/wp-completion.bash" >> ~/.bashrc
source ~/.bashrc

Gestion du cœur WordPress

WP-CLI permet de réaliser une installation complète de WordPress sans passer par le navigateur. En enchaînant quatre commandes, vous avez un site fonctionnel en moins de 30 secondes :

wp core download --locale=fr_FR
wp config create --dbname=mabase --dbuser=monuser --dbpass=monpass --dbhost=localhost --dbprefix=wp_
wp db create
wp core install --url=monsite.fr --title="Mon Site" --admin_user=admin [email protected] --admin_password=MotDePasseSecurise

Pour les mises à jour et la vérification d'intégrité :

wp core check-update
wp core update
wp core update-db
wp core verify-checksums

La commande verify-checksums est particulièrement utile pour détecter les fichiers modifiés ou corrompus. Elle compare chaque fichier du cœur avec les checksums officiels de WordPress.org — une étape essentielle dans tout audit de sécurité.

Gestion des plugins

La gestion des plugins est probablement l'usage le plus fréquent de WP-CLI. Voici les commandes essentielles :

wp plugin list
wp plugin list --status=active
wp plugin list --update=available
wp plugin install wordfence --activate
wp plugin update --all
wp plugin deactivate nom-du-plugin
wp plugin deactivate --all
wp plugin delete nom-du-plugin
wp plugin verify-checksums --all

La commande verify-checksums appliquée aux plugins permet de détecter si un plugin officiel a été modifié — un indicateur potentiel de compromission. En cas de conflit, désactivez tous les plugins avec wp plugin deactivate --all, puis réactivez-les un par un pour isoler le problème.

Gestion des thèmes

Les thèmes se gèrent de manière très similaire aux plugins :

wp theme list
wp theme install flavor --activate
wp theme update --all
wp theme verify-checksums flavor
wp theme delete flavor twenty twenty-three

Il est recommandé de ne garder installés que le thème actif et un thème par défaut en guise de fallback. Les thèmes inutilisés représentent une surface d'attaque inutile.

Gestion des utilisateurs

WP-CLI offre un contrôle complet sur les comptes utilisateurs, indispensable pour l'administration et la sécurité :

wp user list --role=administrator
wp user create jean [email protected] --role=editor --display_name="Jean Dupont"
wp user update 1 --user_pass=NouveauMotDePasse
wp user update 1 --user_pass=$(openssl rand -base64 24)
wp user set-role 5 administrator
wp user delete 5 --reassign=1
wp user session destroy 1 --all

En cas de compromission, WP-CLI permet de forcer le changement de mot de passe de tous les administrateurs, de vérifier qu'il n'y a pas de compte inconnu et de détruire toutes les sessions actives, le tout en quelques secondes.

Gestion de la base de données

WP-CLI embarque des commandes puissantes pour interagir directement avec la base de données MySQL ou MariaDB :

wp db optimize
wp db repair
wp db check
wp db size --tables
wp db export backup.sql
wp db export - | gzip > backup.sql.gz
wp db import backup.sql
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_status='publish'"

Rechercher et remplacer

La commande search-replace est indispensable lors des migrations de sites. Elle gère correctement les données sérialisées PHP, contrairement à un simple REPLACE() SQL qui casserait la sérialisation :

wp search-replace 'http://ancien-domaine.fr' 'https://nouveau-domaine.fr' --precise --all-tables
wp search-replace 'ancien' 'nouveau' --dry-run
wp search-replace 'ancien' 'nouveau' --export=migration.sql

Astuce : Exécutez toujours un --dry-run avant toute opération de search-replace en production, et combinez-le avec un export préalable de la base pour un filet de sécurité complet.

Gestion du contenu

WP-CLI permet de manipuler les articles, pages et tout type de contenu personnalisé :

wp post list --post_type=post --post_status=publish
wp post list --post_type=post --fields=ID,post_title,post_date,post_status
wp post create --post_type=post --post_title="Mon nouvel article" --post_status=publish --post_author=1
wp post update 42 --post_title="Nouveau titre"
wp post delete $(wp post list --post_status=trash --format=ids) --force
wp post generate --count=50 --post_type=post --post_date=2025-01-01

Gestion des médias

wp media regenerate --yes
wp media import https://exemple.fr/photo.jpg --post_id=42 --title="Photo principale"
wp media import /chemin/vers/images/*

Cache et transients

Les transients sont des données temporaires qui s'accumulent avec le temps et peuvent ralentir votre site. Sur certains sites WooCommerce, on peut observer plus de 10 000 transients accumulés :

wp transient delete --expired
wp transient delete --all
wp cache flush
wp cron event list
wp cron event run wp_update_plugins
wp cron test

Options et configuration

WP-CLI permet d'accéder et de modifier toutes les options de la table wp_options. La question des options auto-chargées est souvent négligée mais a un impact direct sur les performances — au-delà de 1 Mo, cela peut ajouter des centaines de millisecondes à chaque requête :

wp option get siteurl
wp option update blogdescription "Ma nouvelle description"
wp option list --autoload=on
wp option list --autoload=on --format=count

Gestion des réécritures et permaliens

wp rewrite flush
wp rewrite flush --hard
wp rewrite list

Un wp rewrite flush --hard est souvent la première chose à tenter lorsque des pages retournent des erreurs 404. C'est l'équivalent de visiter Réglages > Permaliens et de cliquer sur "Enregistrer", mais en beaucoup plus rapide.

WP-CLI et le multisite

Si vous gérez une installation WordPress multisite, WP-CLI est indispensable. L'interface d'administration du multisite est limitée, alors que WP-CLI offre un contrôle total :

wp site list
wp site create --slug=nouveau-site --title="Nouveau Site" [email protected]
wp plugin activate mon-plugin --network

L'une des fonctionnalités les plus puissantes est la possibilité d'itérer sur tous les sites du réseau :

wp site list --field=url | xargs -I {} wp core update-db --url={}
wp site list --field=url | xargs -I {} wp transient delete --expired --url={}

Gestion à distance (SSH)

WP-CLI supporte nativement l'exécution de commandes sur des serveurs distants via SSH :

wp plugin list [email protected]/var/www/html

Profils et fichier de configuration

Le fichier wp-cli.yml permet de définir des paramètres par défaut et des alias pour vos environnements :

path: /var/www/html
url: https://monsite.fr
disabled_commands:
  - db drop
  - db reset

@production:
  ssh: [email protected]/var/www/html

@staging:
  ssh: [email protected]/var/www/html

L'option disabled_commands est une sécurité précieuse : elle empêche d'exécuter accidentellement des commandes destructrices en production. Ciblez ensuite un environnement avec wp @production plugin list.

Scripts de maintenance automatisés

La vraie puissance de WP-CLI réside dans l'automatisation. Voici un script de maintenance hebdomadaire complet :

#!/bin/bash
# Script de maintenance hebdomadaire WordPress
SITE_PATH="/var/www/html"
BACKUP_DIR="/backups/wordpress"
LOG_FILE="/var/log/wp-maintenance.log"
DATE=$(date +%Y%m%d-%H%M)

cd "$SITE_PATH" || exit 1

echo "=== Maintenance WordPress - $(date) ===" >> "$LOG_FILE"

# 1. Sauvegarde de la base de données
wp db export "$BACKUP_DIR/db-$DATE.sql" 2>> "$LOG_FILE"
gzip "$BACKUP_DIR/db-$DATE.sql"
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +30 -delete

# 2. Mises à jour
wp core update 2>> "$LOG_FILE"
wp core update-db 2>> "$LOG_FILE"
wp plugin update --all 2>> "$LOG_FILE"
wp theme update --all 2>> "$LOG_FILE"

# 3. Nettoyage
wp transient delete --expired 2>> "$LOG_FILE"
wp db optimize 2>> "$LOG_FILE"
wp cache flush 2>> "$LOG_FILE"
wp post delete $(wp post list --post_status=trash --format=ids 2>/dev/null) --force 2>/dev/null
wp comment delete $(wp comment list --status=spam --format=ids 2>/dev/null) --force 2>/dev/null

# 4. Vérification de sécurité
wp core verify-checksums 2>> "$LOG_FILE"
wp plugin verify-checksums --all 2>> "$LOG_FILE"

echo "=== Maintenance terminée ===" >> "$LOG_FILE"

Ajoutez ce script à votre crontab pour une exécution automatique chaque dimanche à 3h du matin :

0 3 * * 0 /usr/local/bin/maintenance-wp.sh >> /var/log/wp-maintenance.log 2>&1

Pour aller plus loin dans la mise en place d'une routine de maintenance fiable, consultez notre article sur la maintenance hebdomadaire WordPress.

Commandes avancées pour le débogage

wp eval 'echo get_option("siteurl");'
wp config list
wp config get WP_DEBUG
wp config set WP_DEBUG true --raw
wp config set WP_DEBUG false --raw
wp config set WP_MEMORY_LIMIT 256M

Gestion des commentaires spam

wp comment list --status=spam --format=count
wp comment delete $(wp comment list --status=spam --format=ids) --force
wp comment list --status=hold

Paquets WP-CLI

WP-CLI dispose de son propre gestionnaire de paquets. Deux paquets particulièrement utiles :

  • wp-cli/doctor-command : effectue une série de vérifications automatiques sur votre installation (intégrité des fichiers, version PHP, constantes de sécurité…).
  • wp-cli/profile-command : mesure le temps d'exécution de chaque étape du chargement de WordPress pour diagnostiquer les lenteurs.
wp package install wp-cli/doctor-command
wp doctor check --all
wp package install wp-cli/profile-command
wp profile stage --url=https://monsite.fr

Récapitulatif des commandes essentielles

  • wp core update && wp core update-db — Mettre à jour WordPress
  • wp plugin update --all — Mettre à jour tous les plugins
  • wp theme update --all — Mettre à jour tous les thèmes
  • wp db export backup.sql — Sauvegarder la base de données
  • wp search-replace — Migrer un domaine proprement
  • wp core verify-checksums — Vérifier l'intégrité du cœur
  • wp transient delete --expired — Nettoyer les transients
  • wp cache flush — Vider le cache objet
  • wp rewrite flush --hard — Régénérer les permaliens
  • wp media regenerate --yes — Régénérer les vignettes
  • wp config set WP_DEBUG true --raw — Activer le debug
  • wp cron event list — Vérifier les tâches planifiées

Conclusion

WP-CLI est un outil qui change fondamentalement la façon dont vous gérez WordPress. Une fois maîtrisé, vous ne reviendrez plus à l'interface d'administration pour les tâches courantes. La ligne de commande est plus rapide, plus précise et surtout automatisable — trois qualités essentielles quand on gère des sites en production.

Combinez WP-CLI avec des scripts bash, des tâches cron et des profils d'environnement pour automatiser votre routine de maintenance et gagner un temps considérable. Pour les sites complexes, les installations multisite ou les environnements de déploiement continu, WP-CLI n'est pas juste un outil pratique — il est tout simplement indispensable.

Partager cet article
Retour au blog

Envie d'aller plus loin ?

Consultez notre guide complet pour une approche exhaustive de la sécurité et de la maintenance WordPress.

Lire le guide complet