Installation, mise à jour et gestion des plugins WordPress avec WP-CLI

Publié: 2022-07-26

WP-CLI vous permet de faire pratiquement tout ce que vous pouvez faire dans l'administrateur WordPress, mais sur la ligne de commande. Cela permet de gagner beaucoup de temps et offre un flux de travail plus propre. Vous pouvez utiliser WP-CLI pour gérer le noyau de WordPress, exécuter des mises à jour de thème, gérer des installations multisites, et bien plus encore. Dans cet article, nous allons nous concentrer sur l'un des cas d'utilisation les plus courants, la gestion de vos plugins WordPress.

Les commandes WP-CLI sont toutes structurées de la même manière. Il y a toujours une commande parent (telle que wp plugin ) et une sous-commande (telle que install ), suivies de paramètres et de commutateurs. Nous allons nous concentrer sur le wp plugin et ses sous-commandes dans cet article, mais vous pouvez voir une explication plus détaillée dans notre guide sur la structure de commande WP-CLI.

Cet article utilisait la commande wp plugin comme exemple, soulignant comment installer et activer des plugins à l'aide de WP-CLI. Dans cet article, nous allons approfondir la gestion de nos plugins à l'aide de l'interface de ligne de commande WordPress.

Installation et activation des plugins

Il existe actuellement 16 sous-commandes officielles pour la commande parent du wp plugin . Dans cette section, nous couvrirons les sous-commandes d'installation et d'activation. Nous verrons également comment installer et activer des plugins avec une seule commande. Nous verrons également comment installer des plugins à partir de sources autres que le répertoire de plugins WordPress.

Entrez wp plugin install suivi du slug officiel du plugin pour installer la dernière version :

installer le plugin wp hello-dolly
Installation de Hello Dolly (1.7.2)
Téléchargement du package d'installation depuis https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip...
Utilisation du fichier en cache '/Users/eriktorsner/.wp-cli/cache/plugin/hello-dolly-1.7.2.zip'...
L'authenticité de hello-dolly.1.7.2.zip n'a pas pu être vérifiée car aucune signature n'a été trouvée.
Déballage du colis...
Installation du plugin...
Plugin installé avec succès.
Succès : installé 1 des 1 plugins.

Ensuite, nous activons le plugin en utilisant la commande wp plugin activate :

plugin wp activer hello-dolly
Plugin 'hello-dolly' activé.
Succès : activé 1 des 1 plugins.

Recherche d'un plugin slug

Notez que le slug est souvent différent du nom du plugin. Le slug est visible dans l'URL du plugin dans le répertoire des plugins WordPress, mais vous pouvez accélérer votre flux de travail en vous en tenant à la ligne de commande et en utilisant la sous-commande de search , suivie de deux paramètres et de leurs valeurs : --per-page=1 et --fields=name,slug .

Le paramètre facultatif --per-page indique à WP-CLI combien de résultats nous montrer, dans ce cas un seul. Il affichera par défaut 10 résultats si vous ne lui donnez pas ce paramètre. Je lui ai donné une valeur de 1 ici car je veux seulement voir le résultat le plus pertinent.

Le paramètre --fields indique à WP-CLI de demander des champs spécifiques à l'API, dans ce cas le nom et le slug du plugin. Il existe une large gamme de valeurs que vous pouvez utiliser ici, y compris la version pour voir le numéro de version actuel et la rating pour voir les notes du plugin sous forme de pourcentage et de nombre total de notes. Vous pouvez utiliser à la place --field=<field> si vous ne souhaitez afficher que le résultat d'un seul champ. Vous devez utiliser le paramètre --fields ou --field avec la commande wp plugin search .

wp plugin search "wp offload media" --per-page=1 --fields=name,slug
Succès : Affichage de 1 des 66 plugins.
+------------------------------------------------------------- -------------------------------+------------------------------ --------+
| nom | limace |
+------------------------------------------------------------- -------------------------------+------------------------------ --------+
| WP Offload Media Lite pour Amazon S3, DigitalOcean Spaces et Google Cloud Sto | amazon-s3-et-cloudfront |
| colère | |
+------------------------------------------------------------- -------------------------------+------------------------------ --------+

Comme la réponse à cette commande est une liste, c'est une bonne occasion de montrer ce que le paramètre --format peut faire. Demandons à WP-CLI de nous donner cette liste au format JSON, puis dirigez-la via l'utilitaire jq pour un formatage plus joli. L'utilitaire jq est un processeur JSON léger en ligne de commande que vous pouvez installer sur le lien ci-dessus ou essayer en ligne. Assurez-vous d'omettre | jq | jq à partir de la commande ci-dessous si vous ne l'avez pas installé.

Lorsque nous demandons une sortie au format JSON, WP-CLI omet le message d'état afin que nous n'obtenions pas de JSON cassé :


$ wp plugin search "wp offload media" --per-page=1 --fields=name,slug --format=json | jq
[
  {
    "name": "WP Offload Media Lite pour Amazon S3, DigitalOcean Spaces et Google Cloud Storage",
    "slug": "amazon-s3-et-cloudfront"
  }
]

Pour activer le plugin une fois installé, utilisez wp plugin activate suivi du slug officiel du plugin.

Installer et activer un plugin en même temps

Lorsqu'il s'agit de gérer vos plugins avec WP-CLI, l'un des gros avantages est que vous pouvez installer et activer un plugin avec une seule commande. Alors que activate peut être utilisé comme sous-commande avec wp plugin , il peut également être utilisé comme paramètre avec la commande wp plugin install :

# Installer et activer le plugin en même temps
installation du plugin wp --activate hello-dolly

Installer une version de plug-in spécifique

Il n'est pas rare que vous souhaitiez installer une version spécifique d'un plugin à des fins de test. Tant que la version que vous souhaitez est toujours disponible sur le répertoire des plugins WordPress, vous pouvez sélectionner la version qui vous convient :

# Installer une version spécifique du plugin
installation du plugin wp woocommerce --version=5.5.3

Installer des plugins à partir d'autres emplacements

Le répertoire de plugins WordPress n'est pas le seul endroit où nous pouvons obtenir des plugins. Nous pouvons également installer un plugin directement à partir du système de fichiers. La plupart du temps, lorsque vous achetez un plugin premium, vous recevez la livraison initiale sous la forme d'un fichier zip. WP-CLI se fera un plaisir d'installer ce fichier zip directement, sans avoir besoin d'extraire le package au préalable :

# Installation d'un plugin à partir du dossier Téléchargements
$ installation du plugin wp ~/Téléchargements/advanced-custom-fields-pro.zip

Cela fonctionne également si le plugin que vous souhaitez installer est disponible sur une URL, peut-être uniquement accessible en fournissant des informations d'identification via des paramètres de requête ou sur un serveur avec un certificat auto-signé :

# Récupérer le plugin à partir d'une URL
installation du plugin wp http://www.hellfish.media/my-plugin.zip

# ...ou même un fichier privé d'un bucket Amazon :
installation du plugin wp https://s3.amazonaws.com/bucketname/my-plugin.zip?X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Signature=abc123

# Depuis notre serveur interne avec un certificat auto-signé :
installation du plugin wp https://intranet.hellfish.media/my-plugin.zip --insecure

Mise à jour des plugins avec WP-CLI

Une fois que vous avez installé un plugin, il est important de le maintenir à jour pour des raisons de sécurité. Pour savoir s'il y a des plugins à mettre à jour, nous pouvons lancer la commande wp plugin list :

liste des plugins wp
+-------------------------------+----------+------ -----+---------+
| nom | statut | mise à jour | version |
+-------------------------------+----------+------ -----+---------+
| amazon-s3-et-cloudfront | actif | disponible | 2.6.1 |
| bonjour-dolly | actif | disponible | 1.7.1 |
| wunderdevmu | incontournable | aucun | 1.0 |
+-------------------------------+----------+------ -----+---------+

Dans ce cas, les plugins Hello Dolly et WP Offload Media ont besoin de mises à jour. Naturellement, il existe une sous-commande distincte pour celle-ci appelée update .

Nous pouvons soit les mettre à jour un par un, soit être un peu paresseux et simplement mettre à jour tout ce qui doit être mis à jour en une seule fois en utilisant le commutateur --all . Le comportement par défaut de la commande de mise à jour est de mettre à jour jusqu'à la dernière version disponible, qui inclut les mises à niveau de version majeures. Mais en utilisant le commutateur --minor , nous pouvons être un peu plus prudents et ne mettre à jour que les versions mineures. Par exemple, nous pouvons lui dire de mettre à jour de 1.2.3 à 1.3.0, mais pas à 2.0.0. Nous pouvons même être très prudents et utiliser le commutateur --patch pour limiter les mises à jour aux seuls correctifs, c'est-à-dire de 1.2.3 à 1.2.5 mais jamais à 1.3.0.

# Mettez soigneusement à jour les plugins un par un
mise à jour du plugin wp wp-offload-media
mise à jour du plugin wp hello-dolly

# L'approche cow-boy
mise à jour du plugin wp --all

# Un peu plus sensé
mise à jour du plugin wp --all --minor

# Très défensif
mise à jour du plugin wp --all --patch

Remarque : Les commutateurs --minor et --patch supposent que le plug-in utilise la gestion sémantique des versions. Loin de tous les plugins le font, vous devrez donc rechercher les plugins que vous utilisez afin de ne pas avoir de mauvaises surprises. L'option --dry-run vous permet de vérifier et de vous assurer que vos commandes sont correctes :

# Testez la mise à jour d'un seul plugin vers des correctifs uniquement
mise à jour du plugin wp hello-dolly --patch --dry-run

Le --exclude=<plugin name> est utilisé pour indiquer quels plugins doivent être exclus de la mise à jour. Incluez les noms des plugins sous forme de liste séparée par des virgules, et WP-CLI mettra à jour tous les autres plugins tout en les laissant seuls :

mise à jour du plugin wp --all --exclude=hello-dolly
Activation du mode Maintenance...
Téléchargement de la mise à jour depuis https://deliciousbrains.com/my-account/download/7512/?version=2.6.2...
Déballage de la mise à jour...
Installation de la dernière version...
Suppression de l'ancienne version du plugin...
Plugin mis à jour avec succès.
Désactivation du mode Maintenance...
+--------------------------+-------------+-------- -----+---------+
| nom | ancienne_version | nouvelle_version | statut |
+--------------------------+-------------+-------- -----+---------+
| amazon-s3-et-cloudfront | 2.6.1 | 2.6.2 | Mis à jour |
+--------------------------+-------------+-------- -----+---------+

Forcer la réinstallation du plugin

La plupart des plugins premium sont livrés avec leur propre vérificateur de mise à jour intégré qui fonctionne également très bien avec WP-CLI. D'après mon expérience, tout plugin pouvant être mis à jour en un clic via les pages d'administration de WordPress peut également être mis à jour à l'aide de WP-CLI. Mais dans certains cas, les mises à jour sont fournies via une nouvelle version du fichier zip que vous devez placer au bon endroit sur votre serveur. Vous pouvez appliquer ce type de mises à jour en forçant une réinstallation du plugin à l'aide du commutateur --force :

# Forcer un plugin à se réinstaller
installation du plugin wp ~/Téléchargements/my-custom-plugin-v2.zip --force

Activation des mises à jour automatiques

Depuis la version 5.5, WordPress peut automatiquement mettre à jour les plugins. Les mises à jour automatiques doivent être activées pour chaque plugin individuel. WP-CLI n'offre aucune gestion en bloc pour les mises à jour automatiques. Cela doit être fait individuellement par plugin en utilisant la sous-commande auto-updates . Vous pouvez voir comment cela fonctionne avec les commandes suivantes :

# Vérifiez si les mises à jour automatiques sont activées pour un plugin
statut de mise à jour automatique du plugin wp hello-dolly

# Activer les mises à jour automatiques 
les mises à jour automatiques du plug-in wp activent hello-dolly

# Désactivez-le à nouveau
les mises à jour automatiques du plugin wp désactivent hello-dolly

Désactiver et supprimer des plugins

L'installation, l'activation et la mise à jour des plugins font partie des tâches les plus courantes, mais il existe d'autres tâches de gestion de plugins que WP-CLI peut gérer pour nous.

Si vous avez déjà essayé de comprendre ce qui cause un problème sur votre site Web WordPress, on vous a probablement conseillé de désactiver tous les plugins comme l'une des premières étapes. Il est possible de le faire avec la gestion en bloc dans un navigateur Web, mais cela me rend toujours nerveux. Je préfère le faire via la ligne de commande en utilisant le commutateur --all .

# Désactiver tous les plugins à la fois
plugin wp désactiver --all

# Et réactivez-les à nouveau
plugin wp activer --all

La suppression complète d'un plugin se fait également facilement avec WP-CLI. Une différence entre le faire via la ligne de commande et le navigateur est que WP-CLI vous permettra de supprimer un plugin sans exécuter d'abord les crochets de désactivation. Si vous avez déjà installé un plugin qui plante WordPress lors de la désactivation, vous savez pourquoi cela peut être si utile :

# Désactiver et désinstaller 
plugin wp désactiver hello-dolly --uninstall

# Supprimer un plugin sans lui donner la possibilité de se désactiver
plugin wp supprimer hello-dolly

Il existe également la sous-commande toggle liée à l'activation et à la désactivation des plugins. Il inversera ou basculera l'état d'activation afin qu'il change à l'opposé de l'état actuel. Vous pouvez ajouter --network pour activer ou désactiver le plug-in pour l'ensemble d'un réseau multisite.

Sommes de contrôle des plugins

WP-CLI a la capacité de comparer les sommes de contrôle de vos plugins installés avec les sommes de contrôle du même plugin et de la même version sur le répertoire des plugins WordPress. C'est un moyen très efficace de déterminer si les fichiers du plugin de votre installation WordPress ont été manipulés. S'ils l'ont fait, c'est une forte indication que vous avez été piraté.

Les sommes de contrôle sont des algorithmes informatiques spéciaux qui peuvent prendre une entrée de tout type et de toute taille et la convertir en une chaîne courte. Cette chaîne est généralement d'environ 20 à 40 caractères, ce qui la rend appropriée pour le stockage dans une base de données. Cette chaîne résultante est appelée un hachage, une signature ou, pour des raisons historiques, une somme de contrôle.

Ce qui rend ces algorithmes uniques, c'est que si même un seul caractère change dans l'entrée, la sortie sera complètement différente. Insérez tous les fichiers d'un plugin dans l'algorithme de somme de contrôle un par un, et vous vous retrouverez avec une petite signature, ou somme de contrôle, qui représente l'ensemble du plugin.

Chaque fois qu'une nouvelle version d'un plugin est publiée sur le répertoire des plugins WordPress, la somme de contrôle est calculée et enregistrée pour cette version spécifique. Quelques mois plus tard, lorsque vous souhaitez vérifier que vous n'avez pas été piraté, vous pouvez demander à WP-CLI de calculer la somme de contrôle de vos plugins et de les comparer aux sommes de contrôle d'origine conservées par WordPress. S'il y a des fichiers ajoutés, modifiés ou manquants de votre côté, la somme de contrôle du plugin sera différente de celle d'origine et WP-CLI fera du bruit à ce sujet.

La sous-commande qui gère cette magie de vérification de hachage s'appelle verify-checksums et revient essentiellement à demander "mes plugins sont-ils inchangés depuis que je les ai obtenus du répertoire de plugins WordPress?"

# Rechercher un seul plugin
plugin wp vérifier les sommes de contrôle bonjour-dolly
Succès : Vérifié 1 des 1 plugins

# Vérifiez tous les plugins provenant du dépôt
plugin wp vérifier-sommes de contrôle --all

Cela ne fonctionne que pour les plugins qui ont été installés à partir du répertoire officiel des plugins WordPress, donc vos plugins premium ne seront pas vérifiés par cette commande. La sous-commande verify-checksums existe également pour wp core mais ne peut pas être utilisée pour vérifier les thèmes WordPress.

Commandes pour les scripts

Jusqu'à présent, les commandes que nous avons couvertes sont utiles pour tous ceux qui ont besoin de gérer des plugins WordPress. Le dernier ensemble de sous-commandes du wp plugin que je vais couvrir intéresse principalement les développeurs WordPress, car elles sont principalement destinées à être utilisées dans les scripts Bash.

Nous devons d'abord parler un peu des codes de sortie Unix. Dans un système Unix, tous les programmes qui quittent l'exécution reviennent avec un code de sortie. L'interprétation standard est que le code de sortie 0 signifie que le programme s'est terminé correctement, tandis qu'un code de sortie différent de zéro indique qu'une erreur s'est produite.

Les codes d'erreur sont souvent utilisés dans les scripts shell pour être utilisés dans les instructions if/else et d'autres formes de branchement. Nous ne voyons pas le code de sortie lors de l'exécution d'une commande normalement à partir de l'invite de commande, mais nous pouvons toujours le trouver en utilisant $? :

# Exécutez quelque chose qui fonctionne et obtenez le code de sortie
Date
echo $?
0

# Exécuter quelque chose qui échoue
ls /dossiernonexistant
ls : /idongfdg : aucun fichier ou répertoire de ce type
echo $?
1

Dans WP-CLI, nous avons un tas de commandes qui sont principalement destinées à vérifier quelque chose et à renvoyer un code de sortie utile. La commande wp plugin a deux de ces sous-commandes, is-installed et is-active , qui nous permettent de vérifier si un certain plugin est installé et activé :

# Vérifiez si hello-dolly est installé (il l'est)
le plugin wp est installé hello-dolly
echo $?
0

# Supprimez hello-dolly et vérifiez à nouveau
plugin wp supprimer hello-dolly
le plugin wp est installé hello-dolly
echo $?
1

# Vérifiez si woocommerce est activé
le plugin wp est actif sur woocommerce
echo $?
0

# Désactiver woocommerce
plugin wp désactiver woocommerce
le plugin wp est actif sur woocommerce
echo $?
1

En utilisant les commandes ci-dessus, il est possible d'écrire des scripts Bash qui font différentes choses selon qu'un certain plugin est installé/activé ou non.

La dernière sous-commande que je soupçonne est principalement destinée aux scripts est path . Cette commande renvoie simplement le chemin vers le fichier PHP principal d'un plugin, et par conséquent vers le dossier du plugin également. Nous pouvons combiner cela avec d'autres supercheries Bash, par exemple comme ceci :

# Afficher tous les fichiers dans le dossier du plugin woocommerce
ls -al $(dirname $(wp plugin path woocommerce))

Ce n'est pas très utile dans le travail quotidien en ligne de commande, mais c'est certainement pratique lors de l'écriture de scripts et vous devez obtenir le chemin d'un plugin.

Conclusion

Comme vous pouvez le constater, la gestion des plugins WordPress via la ligne de commande augmente votre vitesse et simplifie considérablement de nombreuses tâches courantes. J'ai couvert les tâches les plus courantes en matière de gestion de vos plugins, mais je vous encourage à explorer davantage par vous-même. Vous constaterez bientôt que la puissance de WP-CLI s'étend bien au-delà des plugins, vous permettant de faire pratiquement tout ce que vous pourriez faire dans l'administrateur WordPress, mais beaucoup plus rapidement.

Avez-vous d'excellents exemples d'utilisation de la commande wp plugin ? S'il vous plaît laissez-moi savoir dans les commentaires.