Image mise en avant pour l'article

WordPress facile : introduction à l’outil de ligne de commande WP CLI

21 juillet 2025
wordpress
WordPress propulse 43 % des sites web mondiaux, mais sa popularité engendre des défis techniques spécifiques. Ce guide explore l’outil WP CLI et vous montre comment l’utilisation de la ligne de commande peut faciliter votre vie.


En tant que développeurs Web (WordPress ou non), nous sommes souvent amenés à exécuter des tâches répétitives dans l’interface d’administration d’un CMS (ex : vérifier la liste des plugins à mettre à jour, vider les caches du site). Ces tâches deviennent vite chronophages car elles obligent :

  • à naviguer dans l’interface d’administration jusqu’à la page adéquate pour exécuter l’un ou l’autre script d’une part,
  • à « subir » le temps de (re)chargement de l’interface dans le navigateur d’autre part (une fois le script lancé, il faut attendre que le serveur retourne une réponse au navigateur et que ce dernier l’affiche, ce qui consomme de la mémoire en exécutant des scripts php dédiés à l’affichage).

L’idéal dans ce cas est de pouvoir s’affranchir de l’affichage dans le navigateur pour se concentrer sur l’essentiel : l’exécution du script.

C’est exactement ce que fait WP CLI ! A l’instar de son cousin Drush pour Drupal, cet outil en ligne de commande vous permet de taper des instructions directement dans un terminal pour que des scripts php soient exécutés.

Préparez-vous à ce que WP CLI révolutionne votre quotidien de développeur WordPress.

Un développeur retravaille le code d'un site internet + le logo de l'outil WP Cli

WP CLI, présentation d’un outil indispensable

Il existe donc dans le core de WordPress un outil puissant, permettant de maitriser le projet depuis la ligne de commande : le WP CLI.

Véritable couteau-suisse du développeur WordPress, le WP CLI permet de réaliser beaucoup d'actions depuis votre terminal. Vous vous affranchissez donc de l’interface d’administration accessible depuis un navigateur, ce qui permet de diminuer grandement les temps de réponse et de ne pas avoir un affichage « pollué » par d’autres données.

Le principe d’utilisation est extrêmement simple :

  • dans un terminal, taper l’instruction « wp nomDeLaCommande »
  • l’outil WP CLI va aller rechercher la classe php qui contient l’instruction « nomDeLaCommande » et exécuter le script php qui lui est associé.

Voici une liste non-exhaustive des commandes disponibles (ne pas hésiter à consulter la documentation officielle : WP-CLI Commands)

Gestion des mises à jours

wp core check-update # Vérifier les mises à jour WordPress
wp core update # Mettre à jour WordPress
wp plugin list # Lister tous les plugins
wp plugin update --all # Mettre à jour tous les plugins
wp theme list # Lister tous les thèmes
wp theme update --all # Mettre à jour tous les thèmes

Gestion de la base données

wp db check # Vérifier l'intégrité de la DB
wp db repair # Réparer la base de données
wp db optimize # Optimiser la base de données
wp db export backup.sql # Exporter la base de données
wp db import backup.sql # Importer la base de données
wp search-replace 'https://www.monsite.com' 'https://monsite.local'

Gestion des utilisateurs

wp user list # Lister les utilisateurs
wp user create nom email --role=editor # Créer un utilisateur
wp user update admin --user_pass=newpass # Changer un mot de passe
wp user delete spam_user --yes # Supprimer un utilisateur

Gestion du cache

wp cache flush # Vider les caches WordPress
wp rewrite flush # Régénérer les règles de réécriture

Gestion des tâches cron

wp cron event list # Voir les tâches cron
wp cron event run wp_scheduled_delete # Exécuter une tâche cron

Gestion des options du site

wp option list # Lister les options
wp option get siteurl # Récupérer la valeur d'une option
wp option delete mon_option # Supprimer une option
wp option update mon_option # Mettre à jour la valeur d'une option
wp option patch mon_option # Ajouter une entrée à la valeur de l'option

Il est également possible d’utiliser plusieurs commandes WP CLI à la suite et d'utiliser le résultat de la première comme argument de la suivante. Il suffit de suffixer la première commande avec « | xargs ».

Par exemple, l’enchaînement de commandes suivantes permet d’ajouter un utilisateur avec le rôle admin sur tous les sites d'un multisite :

wp site list --field=url | xargs -I {} wp user set-role "mon_username" "rôle_à attribuer" --url={}

La première instruction liste les différentes URLs de l’environnement multisite tandis que la seconde instruction réutilise cette liste pour que sur chaque site, l’utilisateur « mon username » se voit attribuer le rôle « rôle à attribuer ».

Utiliser WP-CLI pour créer ses propres commandes

Outre les commandes proposées par défaut, l’intérêt de WP CLI est de pouvoir étendre la classe WP_CLI_Command afin de créer des commandes WP CLI personnalisées qui répondent à tous vos besoins.

Nous allons écrire un exemple de commande personnalisée « Hello World » afin de saisir le concept d'implémentation.

Cette commande va définir trois appels différents :

  • Appel "hello" :
    • wp hello => Affiche le message "Hello World" dans le terminal
    • wp hello --name="John" => variante, affiche le message "Hello John" dans le terminal si le paramètre optionnel "--name" est renseigné.
  • Appel "greet" :
    • wp hello greet => Affiche le message
      "Bonjour Friend, bienvenue sur votre site WordPress !
      Site : {nom du site}.
      Url : {url du site }
      ".
    • wp hello greet --name="John" => variante, affiche le même message en remplaçant "Friend" par la valeur du paramètre optionnel "--name".
    • wp hello greet --loud => variante, affiche le même message, mais en lettres capitales.
  • Appel "info" :
    • wp hello info => Affiche le message
      "=== INFORMATIONS DU SITE ===
      Nom : {nom du site}
      Version WordPress : { version de WordPress }
      Email admin : {email administrateur }
      Nombre d’utilisateurs : { nombre d’utilisateurs }"

Notre classe Hello_Command.php est donc constituée du code suivant :

<?php
/**
  * Commande WP-CLI custom simple pour comprendre le fonctionnement
  *
  * Exemples d'utilisation :
  * wp hello
  * wp hello --name="John"
  * wp hello greet
  * wp hello greet --name="Marie" --loud
  */

class Hello_Command extends WP_CLI_Command {

  /**
    * Affiche un message de base
    *
    * ## OPTIONS
    *
    * [--name=<name>]
    * : Le nom à afficher (défaut: World)
    *
    * ## EXAMPLES
    *
    * wp hello
    * wp hello --name="WordPress"
    */
    public function __invoke( $args, $assoc_args ) {
      // Récupérer le paramètre 'name' ou utiliser 'World' par défaut
      $name = $assoc_args['name'] ?? 'World';
      // Afficher le message
      WP_CLI::line( "Hello {$name}!" );
      // Message de succès en vert
      WP_CLI::success( "Message affiché avec succès." );
     }

  /**
    * Salue quelqu'un de manière plus avancée
    *
    * ## OPTIONS
    *
    * [--name=<name>]
    * : Le nom à saluer (défaut: Friend)
    *
    * [--loud]
    * : Afficher en majuscules
    *
    * ## EXAMPLES
    *
    * wp hello greet
    * wp hello greet --name="Alice"
    * wp hello greet --name="Bob" --loud
    */
     public function greet( $args, $assoc_args ) {
      $name = $assoc_args['name'] ?? 'Friend';
      $loud = isset( $assoc_args['loud'] );
      $message = "Bonjour {$name}, bienvenue sur votre site WordPress !";

      if ($loud ) {
        $message = strtoupper( $message );
      }
      WP_CLI::line( $message );

      // Afficher quelques infos du site
      $site_title = get_option( 'blogname' );
      $site_url = get_option( 'siteurl' );
      WP_CLI::line( "Site : {$site_title}" );
      WP_CLI::line( "URL : {$site_url}" );
      WP_CLI::success( "Salutation terminée !" );
     }

  /**
    * Affiche des informations basiques sur le site
    *
    * ## EXAMPLES
    *
    * wp hello info
    */
  public function info( $args, $assoc_args ) {
      // Récupérer des infos WordPress
      $wp_version = get_bloginfo( 'version' );
      $site_name = get_bloginfo( 'name' );
      $admin_email = get_option( 'admin_email' );
      $user_count = count_users();

      // Afficher les informations
      WP_CLI::line( "=== INFORMATIONS DU SITE ===" );
      WP_CLI::line( "Nom : {$site_name}" );
      WP_CLI::line( "Version WordPress : {$wp_version}" );
      WP_CLI::line( "Email admin : {$admin_email}" );
      WP_CLI::line( "Nombre d'utilisateurs : " . $user_count['total_users'] );
      WP_CLI::success( "Informations affichées." );
     }
  }

  // Enregistrer la commande
  if ( defined( 'WP_CLI' ) && WP_CLI ) {
    WP_CLI::add_command( 'hello', 'Hello_Command' );
  }

Via cette commande simple, nous avons déjà un aperçu de l’utilisation de paramètres optionnels pour enrichir le retour de notre commande et de comment accéder à certaines données du site pour les renvoyer au terminal.

Enfin, de nombreux add-ons tiers (extensions) sont disponibles sur le Web et peuvent être ajoutés au WP CLI pour enrichir ses fonctionnalités. Il conviendra alors de bien vérifier la qualité du code de l'add-on choisi, particulièrement si vous souhaitez l'implémenter sur un site en production.

Un exemple particulièrement intéressant dans le cadre d’une gestion en TMA est l’add-on WP Doctor.


En conclusion, en tant que développeur WordPress, votre temps est précieux et il est toujours appréciable de pouvoir l’optimiser via des outils adaptés. C’est tout l’intérêt de l’outil en ligne de commande WP CLI qui vous permet de vous affranchir de l’interface d’administration de WordPress afin d’aller directement à l’essentiel : exécuter un script php et obtenir une réponse rapide et précise qui ne soit pas noyée dans l’affichage du navigateur.

J’espère que cet article pourra vous aider à transformer l’utilisation de WP CLI en véritable promenade de santé.

Chez Adimeo, une équipe est justement dédiée à WordPress, n’hésitez donc pas à nous contacter pour votre projet avec ce CMS. 😉

Crédit photo : scyther5

Image mise en avant pour l'article
Jérémy Kervran
Développeur WordPress • Pôle Pôle CMS & Front
Vous avez un projet avec WordPress à nous confier ?
Nos experts sont à vos côtés pour vous conseiller et vous accompagner à chaque étape de votre projet.
Contactez-nous !