Au fil des ans, les développeurs de WordPress ont créé et maintenu WP-CLI, une interface de ligne de commande robuste spécialement conçue pour les opérations de WordPress. En tant qu’outil permettant de gagner du temps, WP-CLI est particulièrement bien adapté à la gestion des réseaux WordPress Multisite, qui permettent à plusieurs sites de fonctionner sur une seule installation WordPress.
Pour utiliser WP-CLI efficacement, il est essentiel de comprendre les composants clés de WordPress : l’interface d’administration, la structure des fichiers et la base de données. Sans ces connaissances fondamentales, WP-CLI risque de ne pas être aussi efficace ou bénéfique.
Bien que WP-CLI prenne en charge des commandes standard telles que l’installation, la mise à jour, l’activation, la désactivation et la suppression d’extensions ou de thèmes, ses capacités vont bien au-delà de ce qui est disponible dans le tableau de bord d’administration de WordPress, ce qui en fait un outil très polyvalent pour la gestion avancée d’un site.
Cet article explique comment utiliser WP-CLI pour gérer efficacement les réseaux WordPress Multisite et fournit des exemples pratiques pour t’aider à démarrer.
Qu’est-ce que WP-CLI et pourquoi l’utiliser ?
WP-CLI est un outil puissant pour gérer les sites WordPress via la ligne de commande. Dans un environnement multisite, il peut considérablement simplifier la gestion d’un réseau, en te permettant d’effectuer des actions groupée et de rationaliser votre flux de travail.
Sa véritable force réside dans sa flexibilité et son extensibilité – vous pouvez sans effort exécuter des commandes sur l’ensemble du réseau ou cibler des sites spécifiques tout en améliorant ses fonctionnalités grâce à divers paquets WP-CLI disponibles sur GitHub et d’autres dépôts.
Les développeurs créent souvent des commandes WP-CLI personnalisées pour simplifier les tâches répétitives. Par exemple, vous pouvez utiliser WP-CLI pour échafauder du code passe-partout pour les thèmes et les extensions, ce qui vous permet d’économiser du temps et des efforts pendant le développement.
Si vous êtes hébergé chez Kinsta, WP-CLI est intégré et accessible via SSH, ce qui vous permet de gérer vos sites WordPress sans effort. Pour le développement local, WP-CLI est disponible dans DevKinsta via le conteneur devkinsta_fpm
. Une fois dans le conteneur, vous pouvez naviguer jusqu’au dossier de votre site et exécuter des commandes. Bien que cela nécessite un peu d’installation, c’est un moyen puissant de gérer efficacement vos sites WordPress locaux pour le débogage, les tests ou le déploiement.
Avant de commencer
Les commandes présentées dans cet article ont été soigneusement choisies pour leur utilisation fréquente par les développeurs et les administrateurs de WordPress Multisite.
WP-CLI est un outil vaste et flexible, il est donc impossible de couvrir toutes les commandes disponibles. Pour que les choses restent claires et pratiques, nous nous sommes concentrés sur des exemples simples et exploitables pour vous aider à démarrer.
WP-CLI étant basé sur les commandes Unix, il est possible que vous ne trouviez pas d’équivalent WP-CLI pour des commandes qui existent déjà dans Unix.
Notes clés sur WP-CLI
La structure des commandes de WP-CLI est flexible et permet d’obtenir le même résultat de plusieurs façons. Par exemple, les deux exemples suivants sont valables :
wp user create johndoe [email protected] --display_name="John Doe" --nickname="Johnny"
Ou :
wp user create johndoe --display_name="John Doe" [email protected] --nickname="Johnny"
L’ordre des drapeaux, des paramètres et des valeurs n’a pas d’importance une fois que la commande et la sous-commande sont énoncées.
Meilleures pratiques pour l’exécution des commandes WP-CLI
Suivez ces meilleures pratiques pour éviter les problèmes potentiels :
- Ayez toujours une sauvegarde à jour, d’autant plus que certaines de ces commandes modifieront votre ou vos sites de façon permanente.
- Utilisez un site de staging dans la mesure du possible. Si vous utilisez Kinsta, chaque installation de WordPress comprend un environnement de staging gratuit pour des tests en toute sécurité. Vous pouvez facilement transférer des modifications entre les environnements de staging et les environnements réels.
- Utilisez le drapeau
--dry-run
pour tester les modifications de la base de données avant de les appliquer.
Commandes WP-CLI essentielles pour la gestion de WordPress Multisite
Les commandes WP-CLI dans un réseau Multisite peuvent cibler différents niveaux d’action :
- A l’échelle du réseau: Commandes appliquées à l’ensemble des sites du réseau. Par exemple :
wp plugin deactivate --network --all
Cette commande désactive toutes les extensions sur tous les sites du réseau.
- Site principal : Commandes appliquées au site principal créé lors de la configuration Multisite. Par exemple :
wp plugin list
La commande ci-dessus liste toutes les extensions installées sur le site principal uniquement.
- Sites secondaires : Commandes ciblant des sites individuels au sein du réseau, spécifiés par leur URL. Par exemple :
wp plugin update --url=mysite.example.com akismet
Cette commande met à jour l’extension
akismet
sur le sitemysite.example.com
.
Pour faciliter la gestion de votre réseau multisite, nous avons regroupé les commandes WP-CLI dans ces sections :
Commandes de base
Ces commandes fondamentales vous aident à dépanner et à gérer les extensions et les thèmes de votre réseau.
Travailler avec des listes
WP-CLI permet de récupérer facilement des listes d’extensions et d’autres composants dans votre environnement Multisite.
- Obtenir une liste de toutes les extensions du réseau :
wp plugin list --network
Sortie : Affiche toutes les extensions installées sur le réseau avec des détails tels que le nom, l’état, les mises à jour disponibles et la version.
- Filtrer les extensions par état (par exemple, actif) :
wp plugin list --network --status=active
Sortie : Un tableau des extensions actives sur le réseau.
- Obtenir une liste d’extensions à partir du site principal :
wp plugin list
Sortie : Une liste d’extensions pour le site principal.
- Obtenir une liste des extensions actives pour un seul site :
wp plugin list --url=<site-url> --status=active
Exemple de saisie :
wp plugin list --url=blog.example.com --status=active
Sortie : Un tableau des extensions actives pour le site
blog.example.com
.
En plus de filtrer les extensions par status=active
, vous pouvez aussi utiliser les filtres suivants :
inactive
: Les extensions installées mais non actives.active-network
: Les extensions actives sur le réseau.must-use
: Les extensions indispensables qui se chargent automatiquement.
Désactiver des plugins
La désactivation des extensions est souvent nécessaire lors de la résolution de problèmes ou de la préparation de mises à jour. WP-CLI vous permet de désactiver des extensions sur l’ensemble du réseau ou pour des sites spécifiques.
- Désactiver toutes les extensions du réseau :
wp plugin deactivate --network --all
Résultat : Toutes les extensions du réseau sont désactivées.
- Désactiver des extensions spécifiques pour un seul site :
wp plugin deactivate <plugin-slug-1> <plugin-slug-2> --url=<site-url>
Exemple de saisie :
wp plugin deactivate akismet hello-dolly --url=blog.example.com
Résultat : Les extensions
akismet
ethello-dolly
sont désactivées pour le siteblog.example.com
.
Activer les plugins
Utilisez ces commandes pour activer les extensions, soit à l’échelle du réseau, soit pour des sites individuels dans votre configuration Multisite.
- Activer toutes les extensions du réseau :
wp plugin activate --network --all
Résultat : Toutes les extensions du réseau sont activées.
- Activer des extensions spécifiques pour un seul site :
wp plugin activate <plugin-slug-1> <plugin-slug-2> --url=<site-url>
Exemple de saisie :
wp plugin activate akismet hello-dolly --url=blog.example.com
Résultat : Les extensions
akismet
ethello-dolly
sont activées pour le siteblog.example.com
.
Installer des plugins
L’installation d’extensions avec WP-CLI est rapide et efficace. Une fois installées, les extensions peuvent être activées pour des sites individuels ou sur l’ensemble du réseau.
La commande suivante peut être utilisée pour installer une extension pour le réseau :
wp plugin install <plugin-slug>
Exemple de saisie :
wp plugin install akismet
Résultat : L’extension akismet
est installée et prête à être activée.
Mise à jour des plugins
Maintenez vos extensions à jour sur l’ensemble de votre réseau ou pour des sites spécifiques à l’aide de ces commandes.
- Mettre à jour toutes les extensions du réseau :
wp plugin update --network --all
Résultat : Toutes les extensions du réseau sont mises à jour.
- Mettre à jour des extensions spécifiques dans le réseau :
wp plugin update <plugin-slug-1> <plugin-slug-2> --network
Exemple d’entrée :
wp plugin update akismet jetpack bbpress --network
Résultat : Les extensions
akismet
,jetpack
, etbbpress
sont mises à jour sur le réseau. - Mettre à jour une extension pour un seul site :
wp plugin update --url=<site-url> <plugin-slug>
Exemple de saisie :
wp plugin update --url=blog.example.com hello-dolly
Résultat : L’extension
hello-dolly
est mise à jour pour le siteblog.example.com
.
Supprimer des plugins
La suppression des extensions est simple avec WP-CLI, que vous travailliez sur un seul site ou sur un réseau multisite.
- Supprimer une extension du contexte WordPress actuel (réseau ou site) :
wp plugin delete <plugin-slug>
Exemple de saisie :
wp plugin delete bbpress
Résultat : L’extension
bbpress
est supprimée. - Supprimer une extension pour un site spécifique dans un Multisite :
wp plugin delete <plugin-slug> --url=<site-url>
Exemple de saisie :
wp plugin delete bbpress --url=blog.example.com
Résultat : L’extension
bbpress
est supprimée du siteblog.example.com
.
Gestion du réseau
La gestion des sites au sein d’un réseau WordPress Multisite est une tâche cruciale. Vous trouverez ci-dessous des commandes WP-CLI courantes qui vous aideront à créer, gérer et supprimer efficacement des sites, ainsi qu’à gérer les opérations de mise en cache.
Créer des sites
Ajouter de nouveaux sites à votre réseau est très simple avec WP-CLI.
- Commande de base : Créer un nouveau site en spécifiant un nom unique.
wp site create --slug=<site-name>
Exemple de saisie :
wp site create --slug=blog
Résultat : Un nouveau site
blog.example.com
ouexample.com/blog
, selon la configuration de votre réseau, est créé et est automatiquement actif.
- Commande avancée : Il est également possible d’ajouter des drapeaux à la commande. Dans l’exemple ci-dessous, un site est ajouté avec un titre de site et un administrateur de site spécifiés.
wp site create --slug=<site-name> --title="<site-title>" --email=<admin-email>
Exemple de saisie :
wp site create --slug=blog --title="Blog Site" [email protected]
Résultat : Un site intitulé « Blog Site » est créé avec
[email protected]
comme administrateur.
- Lister tous les sites : Récupérer un tableau affichant les identifiants des sites, les URL, les dates de création et les dates de dernière mise à jour :
wp site list
Vous pouvez aussi affiner la liste des sites pour n’obtenir que les URL de tous les sites du réseau :
wp site list --field=url
Résultat : Une liste d’URL pour chaque site.
Vider et supprimer des sites
- Vider le site principal :
wp site empty
Sortie : Une demande de confirmation apparaît pour supprimer tout le contenu du site principal.
- Vider un seul site (supprime tous les messages, pages, liens et taxonomies) :
wp site empty --url=<site-url>
Exemple de saisie :
wp site empty --url=blog.example.com
Résultat : Tout le contenu de
blog.example.com
est supprimé, mais le site reste intact. - Vider tous les sites du réseau :
wp site list --field=url | xargs -n1 -I % wp site empty --url=% --yes
Résultat : Cette commande lance une boucle à travers toutes les URL et procède ensuite au vidage du contenu de chaque site sans qu’il soit nécessaire de fournir une approbation pour chaque site.
- Supprimer un seul site par son identifiant :
wp site delete <site-id>
Exemple de saisie :
wp site delete 5
Résultat : Le site avec l’ID
5
est supprimé. - Supprime plusieurs sites avec le contournement de confirmation :
wp site delete 2 --yes wp site delete 3 --yes
Résultat : Les sites avec les identifiants
2
et3
sont supprimés. L’indicateur--yes
permet d’ignorer les invites.
Vider le cache
Comme de nombreux types de cache sont stockés de différentes manières ici, nous utilisons l’extension Kinsta Must-Use. Elle est installée automatiquement pour chaque site WordPress de notre système.
Cela efface tout le cache, y compris le cache du site, le cache edge, le cache CDN et le cache Redis.
- Vider tout le cache (site, edge, CDN et Redis) :
wp kinsta cache purge --all
- Vider uniquement le cache du site :
wp kinsta cache purge --site
- Vider le cache CDN :
wp kinsta cache purge --cdn
- Vider le cache des objets :
wp cache purge
Gestion des utilisateurs
WP-CLI simplifie la gestion des utilisateurs dans un environnement multisite, en vous permettant d’effectuer des tâches rapidement et efficacement. Cette section couvre les opérations courantes de gestion des utilisateurs :
Lister les utilisateurs
Lister les utilisateurs d’un réseau ou d’un site spécifique est simple avec WP-CLI.
- Lister tous les utilisateurs du réseau :
wp user list --network
Sortie : Un tableau indiquant l’ID de l’utilisateur, la connexion, le nom d’affichage, le nom d’utilisateur, la date d’enregistrement et le rôle pour chaque utilisateur ou requête de liste d’utilisateurs.
- Lister des utilisateurs pour le site principal :
wp user list
Résultat : Affiche un tableau des utilisateurs du site principal.
- Lister les utilisateurs pour un site spécifique (site secondaire) :
wp user list --blog_id=<id> wp user list --url=<url>
Exemple de saisie :
wp user list --blog_id=6
Résultat : Affiche un tableau de tous les utilisateurs du site avec l’ID du blog
6
.
Créer des utilisateurs
Dans un réseau multisite, les utilisateurs sont inscrits au réseau par défaut. Leurs rôles dépendent du fait qu’ils sont le premier utilisateur ajouté à un site ou les utilisateurs suivants. Les noms d’utilisateur doivent comporter au moins quatre caractères.
- Ajouter un nouvel utilisateur au site principal :
wp user create <username> <email>
Exemple de saisie :
wp user create johndoe [email protected]
Sortie : Un message de réussite s’affiche, avec le mot de passe généré.
- Ajouter un nouvel utilisateur à un site spécifique avec un rôle spécifié :
wp user create <username> <email> --role=<role> --url=<url>
Exemple de saisie :
wp user create janedoe [email protected] --role=editor --url=blog.example.com
Sortie : L’utilisateur
janedoe
est ajouté au siteblog.example.com
en tant qu’éditeur. - Ajouter les méta du compte de l’utilisateur lors de la création :
wp user create <username> <email> --display_name=<name> --nickname=<nickname>
Exemple de saisie :
wp user create johndoe [email protected] --display_name="John Doe" --nickname="Johnny"
Résultat : L’utilisateur
johndoe
est créé avec un nom d’affichageJohn Doe
et un surnomJohnny
.
Mise à jour des utilisateurs
La mise à jour des informations sur les utilisateurs, telles que les rôles ou les mots de passe, est rapide avec WP-CLI.
- Modifier (promouvoir ou rétrograder) les rôles des utilisateurs :
wp user update <username|email|user_id> --role=<role>
Exemple de saisie :
wp user update johndoe janedoe adminuser --role=super-administrator
Résultat : Les utilisateurs
johndoe
,janedoe
, etadminuser
sont promus super administrateurs. - Réinitialiser ou modifie le mot de passe d’un utilisateur :
wp user update <username> --user_pass=<new_password>
Exemple de saisie :
wp user update johndoe --user_pass=securePassword2024
Résultat : Le mot de passe de
johndoe
est mis à jour. - Commandes en chaîne : WP-CLI vous permet de combiner plusieurs actions en une seule commande, ce qui permet de gagner du temps lors de la modification des utilisateurs. Par exemple, vous peux mettre à jour simultanément le mot de passe et le rôle d’un utilisateur.
wp user update <user> --user_pass=<new_password> --role=<status>
Exemple de saisie :
wp user update johndoe --user_pass="newPassword2024" --role=editor
Résultat : Le mot de passe de l’utilisateur
johndoe
est mis à jour ennewPassword2024
, et son rôle est modifié en éditeur.
Gérer les méta utilisateurs
Les méta utilisateurs vous permettent d’ajouter, de récupérer ou de supprimer des métadonnées pour les comptes utilisateurs.
- Obtenir les méta de l’utilisateur :
wp user meta get <username> <meta_key>
Exemple de saisie :
wp user meta get johndoe nickname
Sortie : Afficher la valeur de la clé méta
nickname
pour l’utilisateurjohndoe
. - Ajouter la clé méta de l’utilisateur :
wp user meta add <username> <meta_key> <meta_value>
Exemple de saisie :
wp user meta add johndoe display_name "Mr. John Doe"
Résultat :
Mr. John Doe
est défini comme nom d’affichage pour l’utilisateurjohndoe
. - Supprimer les méta utilisateurs :
wp user meta delete <username> <meta_key>
Exemple de saisie :
wp user meta delete johndoe display_name
Résultat : Cette commande supprime la clé méta
display_name
de l’utilisateurjohndoe
.
Supprimer des utilisateurs
Supprimer des utilisateurs du réseau ou de sites spécifiques est efficace avec WP-CLI.
- Supprimer un utilisateur du réseau :
wp user delete <username|user_id> --network
Exemple de saisie :
wp user delete johndoe --network
Résultat : L’utilisateur
johndoe
est retiré du réseau. - Supprimer un utilisateur d’un site spécifique :
wp user delete <username|user_id> --url=<site-url>
Exemple de saisie :
wp user delete johndoe --url=mysite.example.com
Résultat : L’utilisateur
johndoe
est supprimé du sitemysite.example.com
.
Gestion de la base de données
WP-CLI offre une alternative puissante à des outils comme phpMyAdmin pour gérer votre base de données. Cette section couvre les opérations courantes sur la base de données que vous pouvez effectuer à l’aide de WP-CLI :
Exporter une base de données
Avec WP-CLI, vous pouvez exporter ta base de données sous forme de fichier SQL. Le fichier exporté est enregistré dans le répertoire racine de votre installation WordPress.
wp db export
Résultat : Un fichier SQL est créé dans le répertoire racine.
Si le fichier exporté a un nom disgracieux, vous pouvez le renommer à l’aide de la commande suivante :
wp eval 'if ( rename( "unganglyfilename.sql", "newfilename.sql" ) ) { echo "File renamed successfully."; } else { echo "Failed to rename file."; }'
Exemple de saisie :
wp eval 'if ( rename( "cilawawugo4504_gTr4kSXUsmJ9FNauVnPb-2024-11-17-9545b3f.sql", "network-db.sql" ) ) { echo "File renamed successfully."; } else { echo "Failed to rename file."; }'
Résultat : Le fichier cilawaw…nPb--9545b3f.sql
est renommé en network-db.sql
.
Télécharger une base de données
Pour télécharger le fichier de base de données exporté sur votre machine locale, utilisez la commande curl
.
curl <remote-url> -o <local-path>
Exemple de saisie :
curl example.com/network-db.sql -o ~/Downloads/network-db.sql
Résultat : Le fichier network-db.sql
est téléchargé dans le répertoire local Downloads
.
Téléverser une base de données
Vous pouvez téléverser un fichier de base de données dans le répertoire racine de votre installation Multisite à l’aide de la commande scp
.
scp <local-path-to-file> <username>@<remote-server>:<remote-path>
Exemple de saisie :
scp ~/Downloads/network-db.sql [email protected]:/var/www/example.com/public_html
Résultat : Le fichier network-db.sql
est téléversé dans le répertoire racine de votre installation WordPress après authentification.
Importer une base de données
Avant d’importer une base de données, il se peut que vous ayez besoin de réinitialiser vos tables de données existantes.
- Réinitialiser les tables de données :
wp db reset
Résultat : Toutes les tables de données de la base de données sont vidées.
- Importer la base de données :
wp db import <file-name.sql>
Exemple de saisie :
wp db import network-db.sql
Résultat : Le fichier
network-db.sql
remplit les tables de données vidées. - Supprimer le fichier SQL importé. Pour des raisons de sécurité, supprimez le fichier SQL après l’importation :
rm <file-name.sql>
Exemples pratiques
Nous pouvons penser à de nombreuses commandes qui accéléreront et simplifieront votre travail. En voici trois exemples. Bien que certaines de ces commandes soient plus complexes, elles s’appuient sur des commandes plus simples pour effectuer des opérations utiles.
Installer et activer les plugins et régénérer les miniatures simultanément.
Cette commande passe en boucle par tous les sites du réseau, installe et active deux extensions, et régénère les miniatures des images pour chaque site.
wp site list --field=url | xargs -n1 -I % sh -c 'wp plugin activate <plugin slug> <plugin slug> --url=% && wp media regenerate --url=%'
Exemple d’entrée :
wp site list --field=url | xargs -n1 -I % sh -c 'wp plugin install akismet bbpress --activate --url=% && wp media regenerate --url=%'
Résultat : Les extensions Akismet
et BBPress
sont installées et activées sur tous les sites, et les miniatures des images sont régénérées.
Ajout d’un champ méta personnalisé pour tous les utilisateurs
Cette commande parcourt en boucle tous les sites, récupère la liste des utilisateurs et ajoute un champ méta personnalisé pour chaque utilisateur.
wp site list --field=url | xargs -n1 -I % sh -c 'wp user list --fields=ID --url=% --format=csv | tail -n +2 | xargs -n1 -I {} wp user meta add {} <meta-key> <meta-value> --url=%'
Exemple de saisie :
wp site list --field=url | xargs -n1 -I % sh -c 'wp user list --fields=ID --url=% --format=csv | tail -n +2 | xargs -n1 -I {} wp user meta add {} favorite_color "" --url=%'
Résultat : Un champ méta personnalisé, favorite_color
, est ajouté pour tous les utilisateurs sur tous les sites.
Pour surfacer le champ favorite_color
, vous devrez utiliser votre fichier functions.php
ou créer une extension personnalisée.
Conversion d’une installation monosite en multisite
WP-CLI facilite la conversion d’un site WordPress autonome en un réseau multisite.
wp core multisite-convert
Résultat : Le site unique est converti en réseau multisite.
Avant la conversion, veillez à désactiver toutes les extensions.
Après avoir converti le site, vous devez configurer les URL du réseau dans le fichier wp-config.php
. Vous pouvez choisir d’utiliser des sous-domaines (par exemple, site.example.com) ou des sous-répertoires (par exemple, example.com/site). Vérifiez également le fichier .htaccess
, car les règles de réécriture des URL (gérées par le module mod_rewrite d’Apache) peuvent nécessiter des mises à jour manuelles pour garantir que tes permaliens et la structure de votre site fonctionnent correctement.
Résumé
Ce guide met en lumière la puissance et la flexibilité de WP-CLI pour la gestion des environnements WordPress Multisite, ce qui en fait un outil essentiel pour les développeurs et les administrateurs en quête d’efficacité et de contrôle. De la gestion des extensions, des utilisateurs et des bases de données à l’exécution d’opérations avancées comme la conversion de sites uniques en Multisite, WP-CLI simplifie les tâches complexes avec précision et rapidité.
Kinsta propose un outil WP-CLI inestimable et extensible qui permet une gestion transparente des réseaux WordPress Multisite. Que vous travailliez sur des environnements live ou de staging ou que vous utilisiez notre outil de développement local, DevKinsta, WP-CLI est facilement disponible pour rationaliser votre flux de travail.
Commencez à créer des sites, à ajouter des extensions, des utilisateurs, et plus encore avec WP-CLI !
Laisser un commentaire