WP CLI
Le couteau suisse du développeur
Salut ! 👋
Benjamin Gosset
Développeur WordPress en Normandie
Contributeur (traduction, core, documentation)
@benjamingosset
>_ WP CLI c’est quoi ?
- WordPress Command Line Interface : Interface de commande en ligne (terminal)
- Intégration au projet WordPress depuis décembre 2017
- Maintenu et développé par la communauté, dirigé par Alain Schlesser
- Site officiel : https://wp-cli.org/fr/
- Documentation : https://make.wordpress.org/cli/handbook/
- 48 « commandes » de base avec des sous-commandes et des options
- Gestion de vos installations sans passer par le navigateur
>_Pourquoi utiliser WP CLI ?
- Automatisation des tâches répétitives (gestion des thèmes, extensions, utilisateurs, etc.)
- Développement collaboratif facilité avec des scripts et commandes communs
- Souplesse d’utilisation avec la possibilité de créer ses propres commandes
- Certaines extensions proposent des commandes WP CLI (WP Migrate DB Pro, WooCommerce,
SEOPress, Elementor, etc.)
- Effectuer des actions qui nécessiteraient l’installation d’extensions
- Possibilité de lancer des actions lourdes : le PHP CLI a des limites de temps d’éxécution
et de mémoire différentes du PHP HTTP
- Gain de temps dans les tâches de développement et de maintenance
>_Installation
- WP CLI est disponible par défaut chez certains hébergeurs et outils (O2switch, Hostinger, Local)
- La commande wp permet de vérifier si WP CLI est installé
- Étapes de l’installation
- Téléchargement sur le serveur d’une archive .phar
- Création de la commande wp
- Activation de l’autocomplétion
- Tutoriel : https://wpchannel.com/wordpress/tutoriels-wordpress/wp-cli/
- Composition des commandes : wp [composant][action][arguments]
- Installation et activation de WooCommerce : wp plugin install woocommerce --activate
- Accès via SSH
>_Gestion du coeur WP
Installation
wp core download
wp config create —dbname=wordpress —dbuser=user —dbpass=password —dbhost=localhost —dbprefix=wp_
wp core install --url=yourdomain.com --title=Site_Title --admin_user=admin_username --
admin_password=admin_password --admin_email=your@email.com
Mises à jour du coeur
wp core update
Mises à jour de la base de données
wp core update-db
Vérification de la version actuelle du coeur
wp core version
>_Gestion des thèmes
Installation
Activation
wp theme activate <nom-du-theme>
Lister les thèmes installés
wp theme list
Désactivation
wp theme deactivate <nom-du-theme>
Suppression
wp theme delete <nom-du-theme>
Créer un thème enfant
wp scaffold child-theme biarritz --parent_theme=twentytwenty
wp theme install <nom-du-theme> en ajoutant --activate (le thème sera installé et activé)
>_Gestion des extensions
Lister les extensions installées
wp plugin list
Activation
wp plugin activate <nom-du-plugin>
Désactivation
wp plugin deactivate <nom-du-plugin>
Installation
wp plugin install <nom-du-plugin>
Désinstallation
wp plugin uninstall <nom-du-plugin>
Mise à jour de toutes les extensions
wp plugin update --all
Installer et activer plusieurs extensions
wp plugin deactivate —all
wp plugin install jetpack wordpress-seo performance-lab --activate
>_Gestion des utilisateurs
& des rôles
Lister les utilisateurs
wp user list
Afficher les détails d’un utilisateur
wp user get <identifiant>
Créer un utilisateur
wp user create <nom-d-utilisateur> <adresse-email> --role=<role>
(le mot de passe est généré automatiquement)
Modifier les détails d’un utilisateur
wp user update <identifiant-de-l-utilisateur> --user_pass=<nouveau-mot-de-passe> --user_email=<nouvelle-
adresse-email>
Lister les rôles
wp role list
Créer un nouveau rôle
wp role create <nom-du-role> <description-du-role>
Supprimer un rôle
wp role delete <nom-du-role>
wp user list --format=csv
>_Gestion de la base de données
Exporter
wp db export <nom-du-fichier.sql>
Importer
wp db import <chemin-vers-le-fichier.sql>
Optimiser
wp db optimize
Effectuer un rechercher et remplacer
wp search-replace <ancienne-chaine> <nouvelle-chaine>
Afficher la taille de la base de données et de chaque table
wp db size
wp db size --tables --size_format=kb
Exécuter des requêtes SQL
wp db query <requête>
Supprimer les transients expirés
wp transient delete --expired
>_Commandes utiles
Régénérer les miniatures en masse
wp media regenerate --yes
Réinstaller le noyau WordPress en gardant les thèmes et les extensions installés
wp core download --skip-content --force
Générer des articles
wp post generate --count=10
curl -N https://loripsum.net/api/5 | wp post generate --post_content --count=10
Changer l’URL de WordPress
wp option update home ‘https://exemple.fr'
wp option update siteurl ‘https://exemple.fr'
Installer et activer une version spécifique d’un plugin
wp plugin install wordpress-seo --version=4.9 --activate
Dupliquer un post
wp post create --from-post=<post_id>
>_Vers l’infini et au-delà
- Concaténer les commandes pour lancer plusieurs actions avec une seule ligne
- Créer des scripts Bash pour les actions répétitives
wp language core install fr_FR && wp site switch-language fr_FR && wp option update timezone_string "Europe/Paris" && wp
option update time_format "Ghi" && wp option update date_format "j F Y" && wp option update start_of_week 1 && wp plugin
install woocommerce --activate && wp theme install storefront && wp scaffold child-theme biarritz --
parent_theme=storefront && wp theme activate biarritz
- Créer vos propres commandes WP CLI pour vos développements, notamment pour les
opérations lourdes en terme de temps d’exécution (synchronisation de données par exemple)
Ex : Sauvegarde du site (base de données + fichiers) :
- Créer un dump SQL
- Créer un zip avec le dump et les fichiers
- Envoyer le zip avec rsync sur un serveur distant
- ajouter le script bash dans une tâche CRON avec un intervalle de répétition
- Utiliser les résultats d’une commande en argument
wp post delete $(wp post list --post_type='product' --format=ids) --force
Merci à toutes et tous
Des questions ?

WP CLI : le couteau suisse du développeur

  • 1.
    WP CLI Le couteausuisse du développeur
  • 2.
    Salut ! 👋 BenjaminGosset Développeur WordPress en Normandie Contributeur (traduction, core, documentation) @benjamingosset
  • 3.
    >_ WP CLIc’est quoi ?
  • 4.
    - WordPress CommandLine Interface : Interface de commande en ligne (terminal) - Intégration au projet WordPress depuis décembre 2017 - Maintenu et développé par la communauté, dirigé par Alain Schlesser - Site officiel : https://wp-cli.org/fr/ - Documentation : https://make.wordpress.org/cli/handbook/ - 48 « commandes » de base avec des sous-commandes et des options - Gestion de vos installations sans passer par le navigateur
  • 6.
  • 8.
    - Automatisation destâches répétitives (gestion des thèmes, extensions, utilisateurs, etc.) - Développement collaboratif facilité avec des scripts et commandes communs - Souplesse d’utilisation avec la possibilité de créer ses propres commandes - Certaines extensions proposent des commandes WP CLI (WP Migrate DB Pro, WooCommerce, SEOPress, Elementor, etc.) - Effectuer des actions qui nécessiteraient l’installation d’extensions - Possibilité de lancer des actions lourdes : le PHP CLI a des limites de temps d’éxécution et de mémoire différentes du PHP HTTP - Gain de temps dans les tâches de développement et de maintenance
  • 9.
  • 10.
    - WP CLIest disponible par défaut chez certains hébergeurs et outils (O2switch, Hostinger, Local) - La commande wp permet de vérifier si WP CLI est installé - Étapes de l’installation - Téléchargement sur le serveur d’une archive .phar - Création de la commande wp - Activation de l’autocomplétion - Tutoriel : https://wpchannel.com/wordpress/tutoriels-wordpress/wp-cli/ - Composition des commandes : wp [composant][action][arguments] - Installation et activation de WooCommerce : wp plugin install woocommerce --activate - Accès via SSH
  • 12.
  • 13.
    Installation wp core download wpconfig create —dbname=wordpress —dbuser=user —dbpass=password —dbhost=localhost —dbprefix=wp_ wp core install --url=yourdomain.com --title=Site_Title --admin_user=admin_username -- admin_password=admin_password --admin_email=your@email.com Mises à jour du coeur wp core update Mises à jour de la base de données wp core update-db Vérification de la version actuelle du coeur wp core version
  • 14.
  • 15.
    Installation Activation wp theme activate<nom-du-theme> Lister les thèmes installés wp theme list Désactivation wp theme deactivate <nom-du-theme> Suppression wp theme delete <nom-du-theme> Créer un thème enfant wp scaffold child-theme biarritz --parent_theme=twentytwenty wp theme install <nom-du-theme> en ajoutant --activate (le thème sera installé et activé)
  • 17.
  • 18.
    Lister les extensionsinstallées wp plugin list Activation wp plugin activate <nom-du-plugin> Désactivation wp plugin deactivate <nom-du-plugin> Installation wp plugin install <nom-du-plugin> Désinstallation wp plugin uninstall <nom-du-plugin> Mise à jour de toutes les extensions wp plugin update --all Installer et activer plusieurs extensions wp plugin deactivate —all wp plugin install jetpack wordpress-seo performance-lab --activate
  • 20.
  • 21.
    Lister les utilisateurs wpuser list Afficher les détails d’un utilisateur wp user get <identifiant> Créer un utilisateur wp user create <nom-d-utilisateur> <adresse-email> --role=<role> (le mot de passe est généré automatiquement) Modifier les détails d’un utilisateur wp user update <identifiant-de-l-utilisateur> --user_pass=<nouveau-mot-de-passe> --user_email=<nouvelle- adresse-email> Lister les rôles wp role list Créer un nouveau rôle wp role create <nom-du-role> <description-du-role> Supprimer un rôle wp role delete <nom-du-role> wp user list --format=csv
  • 23.
    >_Gestion de labase de données
  • 24.
    Exporter wp db export<nom-du-fichier.sql> Importer wp db import <chemin-vers-le-fichier.sql> Optimiser wp db optimize Effectuer un rechercher et remplacer wp search-replace <ancienne-chaine> <nouvelle-chaine> Afficher la taille de la base de données et de chaque table wp db size wp db size --tables --size_format=kb Exécuter des requêtes SQL wp db query <requête> Supprimer les transients expirés wp transient delete --expired
  • 26.
  • 27.
    Régénérer les miniaturesen masse wp media regenerate --yes Réinstaller le noyau WordPress en gardant les thèmes et les extensions installés wp core download --skip-content --force Générer des articles wp post generate --count=10 curl -N https://loripsum.net/api/5 | wp post generate --post_content --count=10 Changer l’URL de WordPress wp option update home ‘https://exemple.fr' wp option update siteurl ‘https://exemple.fr' Installer et activer une version spécifique d’un plugin wp plugin install wordpress-seo --version=4.9 --activate Dupliquer un post wp post create --from-post=<post_id>
  • 28.
  • 29.
    - Concaténer lescommandes pour lancer plusieurs actions avec une seule ligne - Créer des scripts Bash pour les actions répétitives wp language core install fr_FR && wp site switch-language fr_FR && wp option update timezone_string "Europe/Paris" && wp option update time_format "Ghi" && wp option update date_format "j F Y" && wp option update start_of_week 1 && wp plugin install woocommerce --activate && wp theme install storefront && wp scaffold child-theme biarritz -- parent_theme=storefront && wp theme activate biarritz - Créer vos propres commandes WP CLI pour vos développements, notamment pour les opérations lourdes en terme de temps d’exécution (synchronisation de données par exemple) Ex : Sauvegarde du site (base de données + fichiers) : - Créer un dump SQL - Créer un zip avec le dump et les fichiers - Envoyer le zip avec rsync sur un serveur distant - ajouter le script bash dans une tâche CRON avec un intervalle de répétition - Utiliser les résultats d’une commande en argument wp post delete $(wp post list --post_type='product' --format=ids) --force
  • 30.
    Merci à touteset tous Des questions ?