WP-CLI v2 – Gestion de WordPress À partir du Terminal

Pendant la majeure partie de sa vie, WordPress a été construit en utilisant une base de code simple avec un trait de PHP orienté objet étant le système le plus abstrait. Au cours des dernières années, cependant, cela change pour le mieux. Des tests unitaires au prétraitement CSS et aux outils de ligne de commande, de plus en plus d’actifs conviviaux pour les développeurs apparaissent. Dans cet article, nous allons regarder l’un de mes favoris: WP-CLI.

Qu’est-ce que WP-CLI ?

WP-CLI est un outil en ligne de commande permettant aux développeurs de gérer les tâches courantes (et pas si courantes) d’une installation WordPress. Il peut ajouter / supprimer des utilisateurs, des publications, des catégories, insérer des données de test, rechercher et remplacer dans la base de données, réinitialiser les mots de passe, aider à résoudre les problèmes de performances et bien plus encore!

Soutien

WP-CLI est un projet open source depuis plus d’une décennie, maintenu principalement par Daniel Bachhuber depuis 2003. L’objectif principal de WP-CLI est d’aider à accélérer les flux de travail des développeurs WordPress.

Au fil des ans, le projet a émergé dans tellement plus! Cela devient même une exigence pour d’autres projets open source tels que Trellis et Bedrock. En janvier 2017, WP-CLI a officiellement déménagé à WordPress.org et est également maintenant co-maintenu par Alain Schlesser.

WP-CLI v2 a été publié le 8 août 2018, nous allons donc également explorer certaines des modifications et des nouvelles fonctionnalités. Si vous êtes un client Kinsta, WP-CLI v2.0.1 est installé par défaut sur tous nos serveurs, il suffit de SSH dans votre serveur pour commencer. L’accès SSH est inclus dans tous nos forfaits d’hébergement (Impossible de se connecter via SSH? Correction de l’erreur SSH « Connexion refusée »).

  • Obtenir WP-CLI
  • Les Bases De WP-CLI
  • Commandes WP-CLI en Général
  • Exemples Utiles
  • Utiliser WP-CLI À Distance
  • Utiliser Des Scripts Bash

Obtenir WP-CLI

L’exigence minimale de PHP sur WP-CLI v2.0.0 a été augmentée à PHP 5.4. Bien que ce soit une bonne avancée, nous vous recommandons d’exécuter au moins une version prise en charge de PHP, c’est-à-dire 5.6 ou supérieure. PHP 7.2 est la valeur par défaut sur toutes les installations Kinsta, à la fois pour des raisons de sécurité et de performances. Nous avons également PHP 7.3 et 7.4 disponibles.

Pour commencer, vous devrez installer WP-CLI – un processus très simple. Les étapes pour Linux et OSX sont les suivantes, émettez ces trois commandes l’une après l’autre:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharchmod +x wp-cli.pharsudo mv wp-cli.phar /usr/local/bin/wp

Si quelque chose ne va pas ou si vous êtes sous Windows, reportez-vous aux instructions de base ou aux méthodes d’installation alternatives.

Une fois cela fait, vous devriez pouvoir émettre la commande wp --info et obtenir une réponse significative.

Le processus est le même si vous souhaitez installer WP-CLI sur votre serveur. Rappelez-vous, pour les clients Kinsta, WP-CLI est déjà installé. Vous ne savez pas quelle version vous utilisez actuellement ? Vous pouvez toujours émettre la commande wp cli version pour le savoir.

Les bases de WP-CLI

Avoir accès à WordPress depuis la ligne de commande est puissant en soi mais peut vous donner encore plus de contrôle et de gains de vitesse lors de l’utilisation de scripts bash.Les scripts Bash

vous permettent d’exécuter une séquence de commandes avec une seule commande. Vous pouvez taper bash install-and-setup.sh et obtenir le résultat suivant:

  • Télécharger WordPress
  • Créer et remplir wp-config.php
  • Créer la base de données
  • Installer WordPress
  • Installer et activer tous les plugins dont vous avez besoin
  • Installer et activer un thème
  • Télécharger et ajouter du contenu de test

Ce serait le étapes que je prendrais pour créer un nouvel environnement de test pour un projet. Normalement, cela me prendrait au moins 5 à 10 minutes, surtout s’il y a quelques plugins impliqués. Émettre une seule commande est évidemment beaucoup plus rapide.

Commandes WP-CLI en général

Si vous avez l’habitude de travailler dans le terminal, WP-CLI n’a rien de spécial pour vous. Les commandes commencent toujours par wp suivies d’une commande et d’une sous-commande, suivies des paramètres requis et facultatifs, quelque chose comme ceci:

wp command subcommand requiredparam --optionalparam --optionalparam2=value

Installons un thème pour voir comment cela fonctionne avec une commande réelle:

wp theme install twentyseventeen --activate

Cela installera et activera le thème Twenty Seventeen sur votre installation WordPress.

Notez que WP-CLI fonctionnera avec l’installation WordPress que vous êtes actuellement dans le terminal. Si vous changez de répertoire pour passer à une autre installation WordPress, cela fonctionnera avec celle-ci.

Exemples utiles

C’était WP-CLI en un mot! Bien qu’il y ait quelques choses avancées que vous pouvez faire, que nous aborderons dans un instant, vous en savez déjà assez pour commencer et faire tout ce dont vous avez besoin. Je recommande de jeter un coup d’œil à la liste des commandes, d’en essayer certaines. Nous allons jeter un coup d’œil à quelques trucs utiles ici, puis passer à l’utilisation de WP-CLI sur SSH et à l’utilisation de scripts bash.

Installation de WordPress

J’utilise beaucoup WP-CLI pour configurer des environnements de test, dont la première étape est une installation vanilla. Voici une liste des commandes que j’exécute:

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Notez à quel point c’est cool! La version la plus récente de WordPress est téléchargée à l’aide de la première commande. La deuxième commande met en place le fichier de configuration avec l’accès à la base de données et quelques PHP supplémentaires à la fin. Les constantes supplémentaires garantissent que nos options de débogage sont activées pour les tests. Nous avons un guide détaillé ici si vous souhaitez en savoir plus sur le débogage de WordPress.

La troisième commande crée la base de données (WP-CLI utilise les informations d’accès à la base de données du fichier de configuration) et enfin, nous installons WordPress en utilisant quelques paramètres.

Réinstaller le noyau WordPress

Vous pouvez également réinstaller le noyau WordPress à l’aide de WP-CLI. La commande suivante téléchargerait WordPress core sans les thèmes et plugins par défaut.

wp core download --skip-content --force

Modifier l’URL WordPress

Il existe de nombreuses raisons pour lesquelles vous pourriez avoir besoin ou vouloir modifier votre URL WordPress. Peut-être changez-vous de domaine, passez-vous à un sous-domaine, mettez-vous à jour de www vers un autre domaine, déplacez-vous des fichiers ou même migrez-vous de HTTP vers HTTPS. Quoi qu’il en soit, vous pouvez utiliser facilement la commande wp option update pour cela. Voici un exemple ci-dessous:

wp option update home 'http://example.com'wp option update siteurl 'http://example.com'

Liste des plugins actuels avec les détails

Pour obtenir une liste des plugins actuels installés sur un site, utilisez simplement la commande suivante. Dans cet exemple, vous pouvez voir que nous avons le plugin Schema et Yoast SEO installé. Il retournera également le statut (actif / désactivé), s’il y a une mise à jour disponible, et la version actuelle.

wp plugin list
 Liste des plugins WP-CLI

Liste des plugins WP-CLI

Installation de plusieurs plugins

Pour installer plusieurs plugins, vous pouvez simplement empiler les paramètres. Voici un exemple qui télécharge et active 3 plugins:

wp plugin install advanced-custom-fields jetpack ninja-forms --activate

Notez que les noms des plugins proviennent de leur nom dans le référentiel. Le moyen le plus simple de le comprendre est de visiter leur page et de regarder l’URL ou d’utiliser wp plugin search searchterm qui vous donnera une liste dans le terminal.

 URL du référentiel de plugins WordPress

URL du référentiel de plugins WordPress

Vous pouvez également installer des versions plus anciennes des plugins WordPress si nécessaire avec l’attribut --version.

wp plugin install wordpress-seo --version=4.8 --activate

Encore plus cool, vous pouvez installer des plugins à partir de fichiers distants, pas seulement du référentiel, ce qui est pratique si vous développez un plugin ou utilisez un plugin premium. La commande suivante installe deux plugins à partir du référentiel et un à partir d’un serveur Amazon S3.

wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate

Désactiver plusieurs plugins

Pour désactiver un seul plugin, vous pouvez exécuter la commande suivante.

wp plugin deactivate wordpress-seo

Pour désactiver tous vos plugins en même temps, exécutez la commande suivante.

wp plugin deactivate --all
 WP-CLI désactive tous les plugins

WP-CLI désactive tous les plugins

Cette commande ci-dessus peut être pratique si vous résolvez des problèmes de compatibilité et que vous devez simplement désactiver tous les plugins d’un seul coup. Vous pouvez ensuite revenir en arrière et les activer un par un, en testant au fur et à mesure.

Mise à jour des plugins

Vous pouvez également mettre à jour manuellement les plugins WordPress. Exemple ci-dessous:

wp plugin update wordpress-seo
 wp-cli met à jour manuellement le plugin wordpress

WP-CLI met à jour manuellement le plugin WordPress

Recherche et remplacement de base de données

L’une des principales raisons pour lesquelles il est difficile de migrer un site simplement en copiant-collant une base de données est que la base de données contient des tableaux sérialisés. Si vous devez remplacer toutes les instances de http://testsite.com par http://livewebsite.com, vos tableaux sérialisés n’auront aucun sens car le nombre de chaînes ne correspondra pas.

Inscrivez-Vous À la Newsletter

Nous avons augmenté notre trafic de 1,187% avec WordPress. Nous allons vous montrer comment.

Rejoignez plus de 20 000 personnes qui reçoivent notre newsletter hebdomadaire avec des conseils WordPress d’initiés!

Abonnez-vous maintenant

La commande search-replace désérialise d’abord les tableaux, puis effectue la recherche et le remplacement, puis re-sérialise les tableaux. Vous pouvez le faire avec une simple commande:

wp search-replace oldstring newstring

Des paramètres supplémentaires vous permettent de faire beaucoup plus, y compris un aperçu de ce qui sera remplacé en utilisant --dry-run.

Importer et Exporter

Il existe deux façons d’exporter du contenu avec WP-CLI. Vous pouvez créer un fichier XML, comme le fait l’outil d’exportation WordPress, ou vous pouvez exporter / importer la base de données brute. Je trouve le dernier beaucoup plus utile dans ma routine quotidienne, il est utile lors de la synchronisation des sites.

wp db export est tout ce que vous devez faire pour créer un fichier SQL et wp db import file.sql est tout ce dont vous avez besoin pour l’importer. Fonctionne comme un charme, faites juste attention à ne pas écraser tout ce dont vous avez besoin, l’importation videra essentiellement la base de données existante et utilisera le fichier SQL fourni à la place.

Gérer Les rôles et les Capacités

WP-CLI peut gérer les rôles pour vous assez facilement à l’aide de la commande wp role. C’est assez cool si vous souhaitez tester le fonctionnement de votre plugin avec des rôles personnalisés mais que vous ne créez pas réellement les rôles dans votre plugin.

wp role create organizer Organizerwp cap list 'editor' | xargs wp cap add 'organizer'wp cap add 'organizer' 'manage-events'

Les commandes ci-dessus créeront un nouveau rôle (Organisateur), y ajouteront toutes les fonctionnalités du rôle éditeur, puis ajouteront une nouvelle fonctionnalité : manage-events.

Générer des données de test

J’aime toutes sortes de fonctions de type faux – celles qui ajoutent du contenu factice à votre site que vous pouvez utiliser pour les tests. WP-CLI en a quelques-uns intégrés, voici quelques fonctions qui généreront des utilisateurs, des termes et des messages.

wp user generate --count=5 --role=editorwp user generate --count=10 --role=authorwp term generate --count=12wp post generate --count=50

Gérer les événements WP-Cron

Vous pouvez gérer les événements WP-Cron et/ou une tâche WordPress Cron dans WP-CLI. Par exemple, la commande suivante vous donnera votre liste d’événements cron actuelle.

wp cron event list
 liste d'événements wp-cron

liste d’événements wp-cron

Supprimer les transitoires

Vous pouvez même supprimer et effacer un ou tous les transitoires à l’aide de la commande suivante.

wp transient delete --all

Si vous exécutez multisite, vous aurez besoin d’une commande un peu plus compliquée. Par défaut, la commande vérifie uniquement la table wp_options. Il ne vérifie pas wp_1_options, wp_2_options, etc.

Aux prises avec des problèmes de temps d’arrêt et de WordPress? Kinsta est la solution d’hébergement conçue pour vous faire gagner du temps ! Découvrez nos fonctionnalités

wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all

Nettoyer la table wp_options

La table wp_options peut être un responsable courant des temps de requête lents sur votre site en raison des données chargées automatiquement qui sont laissées par des plugins et des thèmes tiers. Consultez cet excellent article de WP Bullet sur la façon d’utiliser WP-CLI pour nettoyer votre table wp_options.

Supprimer les révisions WordPress

Sur les grands sites, les révisions WordPress peuvent s’ajouter très rapidement à des milliers de lignes de votre base de données qui ne sont pas nécessaires. Vous pouvez supprimer des révisions post avec WP-CLI. Voici un exemple de la commande:

$ wp post delete $(wp post list --post_type='revision' --format=ids)
 wp-cli supprimer les révisions wordpress

WP-CLI supprimer les révisions WordPress

Contrôler le mode de maintenance

Depuis WP-CLI v2.2.0, vous pouvez désormais contrôler le mode de maintenance sur votre site WordPress. Exemple:

wp maintenance-mode activatewp maintenance-mode deactivatewp maintenance-mode status

Indexation des données avec Elasticsearch

Elasticsearch est un moteur de recherche en texte intégral open source. Il est utilisé pour indexer les données et rechercher ces données incroyablement rapidement. Nous offrons cela comme un add-on pour les clients Kinsta. Vous pouvez utiliser les commandes WP-CLI d’ElasticPress pour effectuer une indexation sur SSH. Exemple:

wp elasticpress index

Travailler avec des sites multilingues

WP-CLI v2.0.0 inclut une nouvelle famille de commandes wp i18n pour ceux d’entre vous qui travaillent avec des sites multilingues. Par exemple, vous pouvez créer un fichier POT pour un plugin ou un thème WordPress.

wp i18n make-pot <source> ] 

Voir la documentation de la commande i18n.

Utilisation de WP-CLI avec WooCommerce

Travailler avec des sites de commerce électronique? We Nous vous recommandons de consulter le guide de développement WooCommerce WP-CLI de Robot Ninja pour des commandes rapides et faciles à utiliser. Générer une liste de clients, de commandes et même créer des produits en vrac sont tous possibles avec WP-CLI.

Utiliser WP-CLI à distance

L’une des meilleures choses que vous pouvez faire avec WP-CLI est de gérer vos installations WordPress distantes. C’est vraiment le rêve d’un gestionnaire de site Web qui se réalise.

Pour exécuter de manière transparente des commandes WP-CLI sur un serveur distant via SSH, vous aviez auparavant besoin de la commande d’extension wp-cli-ssh. Mais à partir de la version 0.24.0, cela fait maintenant partie de WP-CLI lui-même! Important

Important: Vous devez installer WP-CLI à la fois sur l’ordinateur à partir duquel vous exécutez la commande et sur votre serveur.

Configuration des serveurs distants

Vous pouvez configurer vos serveurs globalement ou localement. Pour les configurer globalement, utilisez le fichier config.yml. Vous pouvez également utiliser les fichiers wp-cli.yml ou wp-cli.local.yml dans votre répertoire de travail actuel.

La configuration des serveurs fonctionne comme ceci, collez-la dans l’un des fichiers mentionnés:

ssh: staging: cmd: ssh %pseudotty% %cmd% url: http://myseite.com path: /www/path/to/site/root

Une fois que tout cela est fait, vous pouvez taper la commande suivante pour mettre à jour WordPress sur votre site distant:

wp ssh core update --host=staging

Si vous possédez ou gérez beaucoup de sites, je pense que vous pouvez voir que c’est incroyable! Le script demandera un mot de passe, mais si vous utilisez des clés RSA pour vous connecter, vous pouvez également y renoncer. Jetez un oeil à cet article pour mettre cela en place.

L’utilisation de scripts Bash

Les scripts Bash vous font gagner encore plus de temps en automatisant les tâches. Rappelez-vous comment nous devions taper beaucoup de commandes pour installer WordPress? Vous pouvez le faire avec un seul script bash. Dans un répertoire, créez un fichier install.sh. Collez le même code que nous avions auparavant à l’intérieur et enregistrez-le.

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

Tout ce que vous devez faire maintenant est de taper bash install.sh et tout sera fait pour vous, sans intervention de l’utilisateur. Si vous gérez beaucoup de sites, vous pouvez configurer tous vos environnements et créer un script bash comme celui-ci:

wp ssh core update --host=clientAwp ssh core update --host=clientBwp ssh core update --host=clientCwp ssh core update --host=clientD

Lorsqu’une nouvelle version de WordPress sort, cela pourrait vous faire gagner beaucoup de temps! Puisque vous pouvez faire tout ce que vous voulez avec WP-CLI, vous pouvez même mettre à jour des thèmes et des plugins régulièrement sur un certain nombre de sites clients à la fois.

Résumé

WP-CLI est vraiment le rêve du développeur et du gestionnaire de site Web devenu réalité. En tant que développeurs, nous pouvons créer des sites de test en un tournemain, ajouter du contenu de test et faire toutes sortes de magie d’importation / exportation. Les gestionnaires de site peuvent gérer les mises à jour de site et d’autres tâches pour plusieurs sites avec des commandes uniques. Assurez-vous de consulter les notes de version WP-CLI v2!

Si vous n’avez pas déjà essayé WP-CLI, je vous invite à essayer. Il y a aussi un tas de commandes communautaires comme WP-CLI-SSH qui ajoutent encore plus de fonctionnalités ! Si vous rencontrez des problèmes, assurez-vous de consulter la documentation sur les problèmes courants de WP-CLI.

N’oubliez pas que l’architecture Google Cloud de Kinsta prend en charge WP-CLI immédiatement. Si vous souhaitez essayer l’architecture d’hébergement WordPress la plus moderne et avoir accès à d’excellents outils comme WP-CLI, essayez notre hébergement WordPress géré.

Si vous avez apprécié cet article, vous adorerez la plateforme d’hébergement WordPress de Kinsta. Turbocompressez votre site Web et bénéficiez du soutien 24/7 de notre équipe WordPress chevronnée. Notre infrastructure Google Cloud se concentre sur la mise à l’échelle automatique, les performances et la sécurité. Laissez-nous vous montrer la différence Kinsta! Consultez nos plans



+