WP-CLI : guide pratique pour gérer WordPress en ligne de commande

3 min de lecture

WP-CLI est l’interface officielle en ligne de commande pour administrer WordPress. Elle permet de nombreuses tâches sans wp-admin et facilite maintenance, migrations, automatisation et diagnostic.

WP-CLI n’est pas disponible chez tous les hébergeurs. Il faut un accès SSH, WP-CLI installé et les droits sur le répertoire WordPress.

Qu’est-ce que WP-CLI et quand l’utiliser ?

Vous pouvez vérifier le cœur, gérer extensions, thèmes et utilisateurs, exporter la base, vider l’object cache et remplacer des URL de manière contrôlée. WP-CLI ne remplace ni sauvegardes, ni staging, ni tests de compatibilité.

Avant de commencer

  • Confirmez que l’offre autorise SSH et WP-CLI.
  • Sauvegardez fichiers et base avant toute modification.
  • Utilisez un staging pour les changements risqués.
  • Connectez-vous avec un compte limité, pas root.
  • Vérifiez le document root.

1. Connexion SSH et vérification

cd /path/to/wordpress
wp --info
wp core version

Si wp est introuvable, demandez à l’hébergeur. Pour “This does not seem to be a WordPress installation”, vérifiez le dossier ou utilisez --path=/chemin/correct.

2. Cœur WordPress

wp core version
wp core check-update
wp core verify-checksums

Les checksums détectent des fichiers du cœur modifiés, mais pas extensions, thèmes ou uploads. Avant wp core update, sauvegardez et testez sur staging.

3. Extensions et thèmes

wp plugin list
wp plugin list --update=available
wp plugin status plugin-slug
wp plugin activate plugin-slug
wp plugin deactivate plugin-slug

wp theme list
wp theme status theme-slug

Ne désactivez pas en masse les extensions d’une boutique en production sans maintenance plan. Testez sur staging et mettez à jour séparément.

wp plugin update plugin-slug
wp theme update theme-slug

4. Utilisateurs

wp user list --fields=ID,user_login,user_email,roles
wp user get 1

Contrôlez les administrateurs inconnus, mais ne supprimez aucun compte avant vérification. Ne placez jamais de mot de passe dans l’historique shell.

5. Base de données

Avertissement : ces commandes peuvent affecter tout le site. Sauvegardez avant toute écriture ou optimisation.

wp db check
wp db export wordpress-before-change.sql

Vérifiez le fichier, sa taille et son emplacement hors du web public. Une grosse base peut nécessiter une procédure différente.

6. Cache

wp cache flush

Cette commande vide l’object cache WordPress, pas nécessairement le page cache, le CDN ou le cache serveur.

7. Mises à jour

wp core check-update
wp plugin list --update=available
wp theme list --update=available

Ce sont des contrôles. Avant une mise à jour, préparez sauvegarde, staging et retour arrière.

8. Search-replace avec prévisualisation

WP-CLI traite les données sérialisées, mais un remplacement incorrect peut modifier de nombreuses lignes. Commencez par :

wp search-replace 'https://old.example' 'https://new.example' --all-tables-with-prefix --dry-run

Vérifiez les tables et le nombre de remplacements. Retirez --dry-run uniquement après validation et sauvegarde. Multisite et tables personnalisées demandent des contrôles supplémentaires.

Problèmes fréquents

  • Command not found : WP-CLI est absent ou hors PATH.
  • Mauvais chemin : vérifiez document root ou --path.
  • Erreur de base : contrôlez wp-config.php et le service.
  • Permission denied : contrôlez propriétaire et droits ; n’utilisez pas sudo sans raison.
  • Erreur fatale : consultez les logs et annulez la dernière modification.
  • Timeout/mémoire : fractionnez ou contactez l’hébergeur.

Bonnes pratiques de sécurité

  • Utilisez des clés SSH et ne partagez jamais les accès.
  • Évitez les commandes destructrices.
  • Stockez les exports hors des dossiers publics.
  • Contrôlez site, wp-admin, formulaires et logs.
  • En cas de doute, arrêtez-vous et contactez le support.
Inscription à la newsletter

Abonnez-vous pour plus de contenu utile

Recevez des mises à jour et des guides sur l’hébergement, WordPress et les performances. Vous pouvez vous désabonner à tout moment.