Pendant la majeure partie de sa vie, WordPress a été construit à l’aide d’une simple base de code avec une pointe de PHP orienté objet, le système le plus abstrait. Au cours des dernières années, cependant, la situation s’est améliorée. Des tests unitaires aux outils de preprocessing CSS et de ligne de commande, de plus en plus de ressources adaptées aux développeurs font leur apparition. Dans cet article, nous allons regarder un de mes favoris : WP-CLI.
WP-CLI est un outil en ligne de commande permettant aux développeurs de gérer les tâches communes (et moins communes) d’une installation WordPress. On peut ajouter/supprimer des utilisateurs, des articles, des catégories, insérer des données de test, rechercher et remplacer dans la base de données, réinitialiser des mots de passe, aider à résoudre les problèmes de performances, et bien plus encore !
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 et augmenter le flux de travail des développeurs WordPress.
Au fil des ans, le projet s’est beaucoup transformé ! C’est même devenu une exigence pour d’autres projets open source tels que Trellis et Bedrock. Depuis janvier 2017, WP-CLI a officiellement déménagé sur WordPress.org et est maintenant co-maintenu par Alain Schlesser.
WP-CLI v2 est sorti le 8 août 2018, nous allons donc également explorer certains des changements 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, connectez-vous simplement en SSH sur votre serveur pour commencer. L’accès SSH est inclus dans tous nos plans d’hébergement. (Impossible de se connecter via SSH ? Corrigez l’erreur SSH “Connexion refusée” de SSH).
La version PHP minimale pour WP-CLI v2.0.0 est passée à supérieur à PHP 5.4. Bien qu’il s’agisse d’un bon pas en avant, nous vous recommandons d’exécuter au moins une version supportée de PHP, c’est-à-dire 5.6 ou supérieure. PHP 7.2 est par défaut sur toutes les installations de Kinsta, à la fois pour des raisons de sécurité et de performances. Nous avons aussi PHP 7.3 et 7.4 de disponible.
Pour commencer, vous devrez installer WP-CLI – un processus très simple. Les étapes pour Linux et OSX sont les suivantes, lancez ces trois commandes l’une après l’autre :
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo 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 terminé, vous devriez être en mesure de lancer la commande wp --info
et obtenir une réponse significative.
Le processus est le même si vous voulez installer WP-CLI sur votre serveur. Rappelez-vous, pour les clients Kinsta, WP-CLI est déjà installé. Vous n’êtes pas sûr de la version que vous utilisez actuellement ? Vous pouvez toujours utiliser la commande wp cli version
pour le savoir.
Avoir accès à WordPress à partir de la ligne de commande est puissant en soi, mais peut vous donner encore plus de contrôle et de gains de vitesse lorsque vous utilisez des 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 :
wp-config.php
Ce sont les mesures 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. Utiliser une seule commande est évidemment beaucoupplus rapide.
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
suivi d’une commande et d’une sous-commande, suivies des paramètres obligatoires et facultatifs, 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 de WordPress que vous gérez actuellement dans le terminal. Si vous changez de répertoire pour aller vers une autre installation WordPress, cela fonctionnera avec celle-ci.
Bien qu’il y ait certaines choses avancées que vous pouvez faire, que nous aborderons dans un instant, vous en savez déjà assez pour commencer et faire ce que vous avez à faire. Je recommande de jeter un coup d’oeil à la liste des commandes, essayez-en quelques-unes. Nous allons jeter un coup d’oeil à plusieurs choses utiles ici, puis avancer pour utiliser WP-CLI en SSH et en utiliser des scripts bash.
J’utilise beaucoup WP-CLI pour mettre en place des environnements de test, dont la première étape est une installation vanilla. Voici une liste des commandes que j’exécute :
wp core download
wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
PHP
wp db create
wp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword --admin_email=my@email.com
Remarquez comme c’est cool ! La version la plus récente de WordPress est téléchargée à l’aide de la première commande. La seconde commande configure le fichier de configuration avec l’accès à la base de données et quelques codes PHP supplémentaires à la fin. Les constantes supplémentaires nous permettent d’avoir nos options de débogage pour les tests. Nous avons ici un guide détaillé 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 à partir du fichier de configuration) et finalement, nous installons WordPress en utilisant quelques paramètres.
Vous pouvez aussi réinstaller le coeur de WordPress en utilisant WP-CLI. La commande suivante devrait télécharger le coeur de WordPress sans les thèmes et plugins par défaut.
wp core download --skip-content --force
Il y a plusieurs raisons pour lesquelles vous pourriez avoir besoin ou vouloir changer votre URL WordPress. Peut-être que vous changez de domaine, passez à un sous-domaine, mettez à jour de www à non-www, déplacez des fichiers, ou même migrez de HTTP à 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://exemple.com' wp option update siteurl 'http://exemple.com'
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 installé le plugin SEO Schema and Yoast. Il retournera également le statut (actif/inactif), s’il y a une mise à jour disponible, et la version actuelle.
wp plugin list
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 le nom des plugin vient de leur nom dans le répertoire WordPress. La façon la plus simple de s’en rendre compte 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.
Vous pouvez aussi installer une version ancienne des plugins WordPress si besoin 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 le 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
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
Cette commande ci-dessus peut être utile si vous rencontrez des problèmes de compatibilité et que vous avez simplement besoin de désactiver tous les plugins d’un seul coup d’œil. Vous pouvez ensuite revenir en arrière et les activer un par un, en les testant au fur et à mesure.
Vous pouvez également mettre à jour manuellement les plugins WordPress. Exemple ci-dessous :
wp plugin update wordpress-seo
Une des principales raisons pour lesquelles il est difficile de migrer un site par simple copier-coller d’une base de données est que celle-ci contient des tableaux sérialisés. Si vous devez remplacer toutes les instances de http://testsite.com
par http://livewebsite.com
vos tables sérialisées n’auront aucun sens car le nombre de chaînes ne correspondra pas.
Rejoignez plus de 20 000 autres personnes qui reçoivent notre bulletin hebdomadaire avec des conseils WordPress !S’abonner
La commande search-replace
désérialise d’abord les tables, puis effectue la recherche et le remplacement, puis resérialise les tables. Vous pouvez le faire avec une simple commande :
wp search-replace oldstring newstring
Des paramètres supplémentaires vous permettent d’en faire beaucoup plus, y compris la prévisualisation de ce qui sera remplacé en utilisant --dry-run
.
Il y a 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 ce dernier beaucoup plus utile dans ma routine quotidienne, c’est très pratique pour synchroniser des sites.
wp db export
est tout ce dont vous avez besoin pour créer un fichier SQL et wp db import file.sql
est tout ce dont vous avez besoin pour l’importer. Fonctionne parfaitement, il suffit de faire attention à ne pas écraser tout ce dont vous avez besoin, l’importation va essentiellement vider la base de données existante et utiliser le fichier SQL fourni à la place.
WP-CLI peut gérer les rôles pour vous assez facilement en utilisant la commande wp role
. C’est plutôt cool si vous voulez 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 Organizer
wp cap list 'editor' | xargs wp cap add 'organizer'
wp cap add 'organizer' 'manage-events'
Les commandes ci-dessus créeront un nouveau rôle (Organizer), y ajouteront toutes les permissions du rôle éditeur, puis ajouteront une nouvelle capacité : manage-events.
J’adore toutes sortes de fonctions qui ressemblent à des fausses fonctions – celles qui ajoutent un contenu factice à votre site que vous pouvez utiliser pour les tests. WP-CLI a quelques unes de ces fonctions intégrées, voici quelques unes d’entre elles qui vont générer des utilisateurs, des termes et des articles.
wp user generate --count=5 --role=editor
wp user generate --count=10 --role=author
wp term generate --count=12
wp post generate --count=50
Vous pouvez gérer des événements WP-Cron et/ou une tâche Cron WordPress dans WP-CLI. Par exemple, la commande suivante vous donnera votre liste d’événements cron actuelle.
wp cron event list
Vous pouvez même supprimer et effacer un ou tous les transients à l’aide de la commande suivante.Vous avez des problèmes de temps d’indisponibilité 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
Si vous utilisez plusieurs sites, vous aurez besoin d’une commande un peu plus compliquée. Par défaut, la commande ne vérifie que la table wp_options
. Elle ne vérifie pas wp_1_options
, wp_2_options
, etc.
wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all
La table wp_options peut être un coupable commun pour les temps de requêtes lents sur votre site en raison de données chargées automatiquement qui sont laissées derrière par des plugins et des thèmes tiers. Lisez cet excellent article de WP Bullet sur comment utiliser WP-CLI pour nettoyer votre table wp_options.
Sur les sites plus grands, les révisions WordPress peuvent ajouter très rapidement des milliers de lignes qui ne sont pas nécessaires dans votre base de données. Vous pouvez supprimer les révisions avec WP-CLI. Voici un exemple de commande :
$ wp post delete $(wp post list --post_type='revision' --format=ids)
Depuis WP-CLI v2.2.0, vous pouvez maintenant contrôler le mode maintenance sur votre site WordPress. Exemple:
wp maintenance-mode activate wp maintenance-mode deactivate wp maintenance-mode status
Elasticsearch est un moteur de recherche full-text open source. Il est utilisé pour indexer les données et les rechercher incroyablement rapidement. Nous l’offrons en tant qu’option additionnelle pour les clients Kinsta. Vous pouvez utiliser les commandes WP-CLI ElasticPress pour effectuer une indexation via SSH. Exemple :
wp elasticpress index [--setup] [--network-wide] [--posts-per-page] [--nobulk] [--offset] [--show-bulk-errors] [--post-type]
WP-CLI v2.0.0 inclut une nouvelle famille de commandes wp i18n
pour ceux 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 [] [--slug=] [--domain=] [--ignore-domain] [--merge[=]] [--exclude=] [--skip-js]
Voir la documentation sur les commandes i18n.
Vous travaillez avec des sites de eCommerce ? 🛒 Nous vous recommandons de lire l’incroyable guide de développement WooCommerce avec WP-CLI de Robot Ninja pour des commandes simples et rapides que vous pouvez utiliser. La génération d’une liste de clients, les commandes et même la création de produits en vrac sont tous possibles avec WP-CLI.
Une des meilleures choses que vous pouvez faire avec WP-CLI est de gérer vos installations WordPress à distance. C’est vraiment le rêve d’un gestionnaire de site web qui se réalise.
Pour exécuter de façon transparente les commandes WP-CLI sur un serveur distant via SSH, vous aviez auparavant besoin de la commande wp-cli-ssh addon. Mais depuis la v0.24.0, cela fait maintenant partie du WP-CLI lui-même ! 👏
Important : Vous devez installer WP-CLI à la fois sur l’ordinateur à partir duquel vous exécutez la commande et sur votre serveur.
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 de la manière suivante, collez ceci dans l’un des fichiers mentionnés :
ssh:
staging:
cmd: ssh %pseudotty% username@server.com %cmd%
url: http://monsite.com
path: /www/path/to/site/root
Une fois tout cela 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 vous demandera un mot de passe, mais si vous utilisez les clés RSA pour vous connecter, vous pouvez également y renoncer. Jetez un coup d’oeil à cet article pour configurer cela.
Les scripts Bash vous font gagner encore plus de temps en automatisant les tâches. Vous vous souvenez qu’il fallait 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 celui que nous avions à l’intérieur et sauvegardez-le.
wp core download
wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
PHP
wp db create
wp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword --admin_email=my@email.com
Tous ce dont vous avez besoin est d’entrer 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 ceci :
wp ssh core update --host=clientA
wp ssh core update --host=clientB
wp ssh core update --host=clientC
wp ssh core update --host=clientD
Quand une nouvelle version de WordPress sort, cela peut vous faire gagner un temps précieux ! Comme vous pouvez faire tout ce que vous voulez avec WP-CLI, vous pouvez même mettre à jour les thèmes et plugins régulièrement sur un certain nombre de sites clients à la fois.
WP-CLI est vraiment le rêve du développeur et du gestionnaire de sites Web qui devient 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 d’import/export magiques. Les gestionnaires de sites peuvent gérer les mises à jour des sites et d’autres tâches pour plusieurs sites avec des commandes uniques. Assurez-vous de vérifier les notes de publication de WP-CLI v2!
Si vous n’avez pas encore essayé WP-CLI, je vous invite à le faire. Il y a aussi un tas d’autres commandes, comme WP-CLI-SSH qui ajoute encore plus de fonctionnalités ! Si vous rencontrez des problèmes, assurez-vous de regarder la documentation WP-CLI pour les problèmes communs.
N’oubliez pas que l’architecture Google Cloud de Kinsta prend en charge WP-CLI. Si vous souhaitez essayer l’architecture de l’hébergement WordPress Kinsta et avoir accès à de grands outils comme WP-CLI, essayez notre hébergement WordPress infogéré.
Économisez du temps et de l’argent et optimisez les performances de votre site avec :
Tout cela et bien plus encore, dans un seul plan sans contrat à long terme, avec des migrations assistées et une garantie de remboursement de 30 jours. Pour trouver le plan qui vous convient, Découvrez nos plans ou contactez nous.
Source: https://kinsta.com/fr/blog/wp-cli/
Debian : Installer un serveur DHCP Outils Historique Version imprimable Table des matières INTRODUCTIONINSTALLATION DE DHCPCONFIGURATION…
I. Présentation Le service DHCP est très répandu dans les entreprises afin de distribuer une…
Préalables pour le lecteur : pour tirer le maximum de profit de la lecture de cet…
Imagemagick Imagemagick est un logiciel ultra-puissant qui s'utilise en ligne de commande et qui permet de…
Mesures de sécurité essentielles à WordPress 1- Le compte Admin En premier lieu, quelque soit…
Activer le mode maintenance sur WordPress Le mode de maintenance de WordPress est activable par…