Installation, mise à jour et gestion des plugins WordPress avec WP-CLI
Publié: 2022-07-26WP-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.