WP-CLI : Optimisez la gestion de WordPress en ligne de commande
Comment optimiser la gestion de votre site Worpdress avec WP CLI
(par Ilhan le 19/11/2024)
Introduction
WP-CLI (WordPress Command Line Interface) est un outil puissant permettant aux administrateurs et développeurs WordPress de gérer leurs sites via la ligne de commande. Que vous souhaitiez installer des plugins, mettre à jour WordPress, ou effectuer des tâches complexes de maintenance, WP-CLI offre une alternative rapide et scriptable aux interfaces graphiques.
Pourquoi utiliser WP-CLI ?
WP-CLI simplifie la gestion de votre site WordPress, particulièrement utile pour :
- Gagner du temps lors des opérations répétitives
- Automatiser des tâches de maintenance
- Gérer plusieurs sites de manière centralisée
- Éviter les limitations de l’interface utilisateur web, notamment sur des connexions lentes
Installation de WP-CLI
L’installation est rapide et adaptée à un environnement sans privilèges administratifs.
Étapes simplifiées :
Téléchargez WP-CLI :
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Rendez WP-CLI exécutable :
chmod +x wp-cli.phar
Déplacez WP-CLI dans un répertoire personnel :
mv wp-cli.phar ~/bin/wp
Ajoutez le répertoire à la variable PATH : Ajoutez cette ligne dans votre fichier .bashrc
ou .zshrc
:
export PATH=$PATH:~/bin
Rechargez ensuite la configuration :
source ~/.bashrc
Testez l’installation :
wp --info
Commandes de base
Vérifier la version de WordPress
wp core version
Résultat attendu :
6.7
Mettre à jour WordPress
wp core update
Résultat attendu :
Downloading WordPress 6.7 (fr_FR)...
Success: WordPress updated successful
Gestion des Plugins
Lister les plugins installés
wp plugin list
Résultat attendu :
+-------------------+----------+-----------+---------+
| name | status | update | version |
+-------------------+----------+-----------+---------+
| akismet | active | available | 5.2.1 |
| wordpress-seo | inactive | none | 21.1 |
| woocommerce | active | none | 7.4.1 |
+-------------------+----------+-----------+---------+
Installer un plugin
Pour installer Yoast SEO :
wp plugin install wordpress-seo
Résultat attendu :
Installing WordPress SEO by Yoast (21.1)...
Downloading install package from https://downloads.wordpress.org/plugin/wordpress-seo.21.1.zip...
Unpacking the package...
Installing the plugin...
Success: Plugin installed successfully.
Activer et désactiver un plugin
Pour activer Yoast SEO :
wp plugin activate wordpress-seo
Résultat attendu :
Success: Plugin 'wordpress-seo' activated.
Pour le désactiver :
wp plugin deactivate wordpress-seo
Résultat attendu :
Success: Plugin 'wordpress-seo' deactivated.
Gestion des Thèmes
Installer un thème
wp theme install twentytwentythree
Résultat attendu :
Installing Twenty Twenty-Three (1.3)...
Unpacking the package...
Installing the theme...
Success: Theme installed successfully.
Activer un thème
wp theme activate twentytwentythree
Résultat attendu :
Success: Switched to 'Twenty Twenty-Three' theme.
Export et Import de la Base de Données
Exporter la base de données
wp db export mydatabase.sql
Résultat attendu :
Success: Exported to 'mydatabase.sql'.
Importer une base de données
wp db import mydatabase.sql
Résultat attendu :
Success: Imported from 'mydatabase.sql'.
Exécution de Requêtes de Recherche et Remplacement
Pour remplacer l’URL de l’ancien site par la nouvelle :
wp search-replace 'https://ancien-site.com' 'https://nouveau-site.com'
Résultat attendu :
+---------------------+--------------+--------------+
| Table | Replacements | Updates |
+---------------------+--------------+--------------+
| wp_options | 5 | 5 |
| wp_posts | 12 | 12 |
| wp_postmeta | 3 | 3 |
+---------------------+--------------+--------------+
Success: Made 20 replacements.
Regénération des Miniatures
wp media regenerate --yes
Résultat attendu :
Found 15 images to regenerate.
1/15 Regenerated thumbnail for "image1.jpg" (ID 45).
2/15 Regenerated thumbnail for "image2.jpg" (ID 46).
...
Success: Regenerated 15 of 15 images.
Automatisation de la maintenance WordPress avec WP-CLI
Voici un exemple de script utile pour toute personne maintenant fréquemment un voire plusieurs sites WordPress. Ce script intègre toutes les opérations courantes de maintenance WordPress, tout en vérifiant que les mises à jour ou suppressions sont possibles avant de les exécuter.
Script : maintenance.sh
#!/bin/bash
# Variables
WP_PATH="/chemin/vers/votre/wordpress" # Adapter à votre installation
LOG_FILE="maintenance_log.txt" # Fichier de journalisation
DATE=$(date '+%Y-%m-%d %H:%M:%S')
# Initialisation du journal
echo "=== Maintenance du $DATE ===" > $LOG_FILE
# Vérification du répertoire WordPress
cd $WP_PATH || { echo "Erreur : Répertoire WordPress introuvable."; exit 1; }
# Mise à jour du core WordPress
echo "[INFO] Vérification des mises à jour du core WordPress..." | tee -a $LOG_FILE
if wp core is-installed; then
wp core update | tee -a $LOG_FILE
wp core update-db | tee -a $LOG_FILE
else
echo "[ERREUR] WordPress n'est pas installé dans ce répertoire." | tee -a $LOG_FILE
exit 1
fi
# Mise à jour des plugins
echo "[INFO] Mise à jour des plugins..." | tee -a $LOG_FILE
if wp plugin list --fields=update | grep -q 'available'; then
wp plugin update --all | tee -a $LOG_FILE
else
echo "[INFO] Aucun plugin à mettre à jour." | tee -a $LOG_FILE
fi
# Mise à jour des thèmes
echo "[INFO] Mise à jour des thèmes..." | tee -a $LOG_FILE
if wp theme list --fields=update | grep -q 'available'; then
wp theme update --all | tee -a $LOG_FILE
else
echo "[INFO] Aucun thème à mettre à jour." | tee -a $LOG_FILE
fi
# Nettoyage des transients
echo "[INFO] Suppression des transients inutilisés..." | tee -a $LOG_FILE
wp transient delete --all | tee -a $LOG_FILE
# Nettoyage des révisions
echo "[INFO] Nettoyage des révisions inutilisées..." | tee -a $LOG_FILE
wp post delete $(wp post list --post_type='revision' --format=ids) --force | tee -a $LOG_FILE
# Optimisation de la base de données
echo "[INFO] Optimisation de la base de données..." | tee -a $LOG_FILE
wp db optimize | tee -a $LOG_FILE
# Régénération des miniatures
echo "[INFO] Régénération des miniatures..." | tee -a $LOG_FILE
wp media regenerate --yes | tee -a $LOG_FILE
# Fin de la maintenance
echo "[INFO] Maintenance terminée avec succès !" | tee -a $LOG_FILE
Description du Script
- Pré-vérifications :
- Vérifie si WordPress est installé dans le chemin indiqué.
- Journalise chaque opération dans un fichier pour un suivi précis.
- Mises à jour :
- Met à jour WordPress (core, plugins, thèmes) uniquement si des mises à jour sont disponibles.
- Nettoyages :
- Supprime les transients expirés ou inutilisés.
- Efface les anciennes révisions d’articles.
- Optimisation de la base de données :
- Améliore les performances via
wp db optimize
.
- Améliore les performances via
- Régénération des miniatures :
- Recrée les tailles d’images nécessaires pour éviter les problèmes d’affichage.
Exécution du Script
- Sauvegardez le script sous le nom
maintenance.sh
- Rendez-le exécutable :
chmod +x maintenance.sh
- Lancez-le :
./maintenance.sh
Conclusion
WP-CLI est un outil incontournable pour les administrateurs et développeurs WordPress. Avec des commandes simples et des résultats immédiats, il permet de gagner du temps et d’automatiser les tâches répétitives. Nous l’utilisons très fréquemment en tant qu’hébergeur WordPress pour accompagner nos clients.
L’exemple de script fourni démontre la puissance potentielle de l’outil, nous espérons qu’il vous sera utile.
Pour en savoir plus, consultez la documentation officielle de WP-CLI