Lors d’un diagnostic de performance ou d’une enquête sur une infection malware dans WordPress, il devient souvent nécessaire de désactiver l’ensemble des extensions à un moment donné du processus. Il est également judicieux de sauvegarder toutes les extensions WordPress individuellement sous forme d’archives .zip
, afin de prévenir toute perte ou confusion durant les manipulations.
Réinstaller manuellement chaque extension à partir de ses fichiers zip serait une tâche particulièrement fastidieuse. C’est pourquoi, dans cet article, je vous montre comment automatiser entièrement cette procédure.
Nous commencerons par compresser chaque extension WordPress dans un fichier .zip
distinct, que nous placerons dans un dossier temporaire. Pour compléter ce script, j’ai également inclus une boucle simple permettant de réinstaller en lot toutes ces sauvegardes via WP‑CLI.
1. Sauvegarde de la base de données
Connectez-vous dans le répertoire racine de votre site via SSH, puis exécutez :
wp db export sauvegarde.sql
Code language: JavaScript (javascript)
Cela génère un fichier SQL contenant l’intégralité de la base de données.
2. Archivage des fichiers du site
Au même emplacement, empaquetez l’intégralité du site :
zip -r archive_site.zip * .htaccess
Code language: CSS (css)
Cette commande comprime tous les fichiers, incluant .htaccess
, en omettant les autres fichiers cachés.
Important : n’oubliez pas de supprimer ensuite le fichier .sql
et l’archive .zip
afin d’éviter toute exposition non sécurisée.
3. Installation de WP‑CLI (si non présent)
Sur un serveur Unix (Linux, macOS…) :
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info
Code language: JavaScript (javascript)
Cette suite de commandes permet de télécharger, tester, rendre exécutable, et déplacer WP‑CLI dans votre PATH.
4. Installation et activation groupées d’extensions
a. Installation en lots :
wp plugin install extension1 extension2 extension3
Remplacez extensionX
par le slug trouvé sur le répertoire officiel WordPress.
b. Activation simultanée :
Ajoutez --activate
:
wp plugin install extension1 extension2 --activate
Parfait pour les extensions ne nécessitant pas de configuration initiale .
5. Gestion de vos extensions
WP‑CLI simplifie largement l’administration :
- Lister les extensions :
wp plugin list
- Activer ou désactiver plusieurs extensions :
wp plugin activate ext1 ext2 wp plugin deactivate ext1 ext2 wp plugin deactivate --all
- Mettre à jour en masse :
wp plugin update --all
- Désinstaller :
wp plugin deactivate ext-name --uninstall && wp plugin delete ext-name
6. Réinstallation en masse (option avancée)
Pour forcer la réinstallation de toutes les extensions issues du dépôt WordPress :
wp plugin install $(wp plugin list --field=name) --force
Code language: JavaScript (javascript)
Cela télécharge à nouveau chaque extension depuis le dépôt officiel.
7. Sauvegarde de chaque plugin
On crée un répertoire temporaire pour nos sauvegardes:
# répertoire temporaire
mkdir /tmp/plugins
Code language: PHP (php)
Et on crée un script qui zippe et sauvegarde chaque plugin dans notre répertoire temporaire:
WPDIR=/home/www/example.com/wp-content/plugins
TMPDIR="/tmp/plugins"
for DIR in ${WPDIR}/
do
echo "Zipping $DIR" | tr -d /
zip -r --quiet "${TEMPDIR}${DIR%/}.zip" "$DIR"
done
Code language: JavaScript (javascript)
Installation en lot de plugins WordPress via WP-CLI
Ce script vous permet d’installer automatiquement plusieurs fichiers zip de plugins WordPress à l’aide de WP-CLI. Exécutez ce script depuis le dossier temporaire où vous avez stocké tous vos fichiers zip de sauvegarde de plugins.
- Assurez-vous de modifier la variable
WPPATH
pour qu’elle pointe vers le répertoire de votre installation WordPress. - Pour obtenir le chemin absolu de votre installation WordPress, exécutez la commande
pwd
dans un terminal SSH lorsque vous êtes dans le dossier principal de WordPress.
Exemple de script :
WPPATH="/home/www/example.com/wp-content/plugins"
for PLUGIN in *.zip
do
<em># Passe si ce n’est pas un fichier zip</em>
[ -f "$PLUGIN" ] || break
<em># Installe et active le plugin</em>
wp plugin install "$PLUGIN" --activate --path="$WPPATH"
done
Code language: PHP (php)
Ce script facilite l’installation de plusieurs plugins sans avoir à les installer manuellement un par un.
Script automatisé de sauvegarde
#!/bin/bash
# -----------------------------------------------------------------------------
# Script de sauvegarde, archivage et gestion groupée des extensions WordPress
# Compatible Linux/macOS avec WP-CLI
# by Matt Biscay
# https://mattbiscay.com
# -----------------------------------------------------------------------------
set -euo pipefail
IFS=$'\n\t'
# Configuration utilisateur
PLUGINS=("seo-by-rank-math" "wordpress-seo" "query-monitor") # Slugs du repo WP
WP_CLI_PATH="/usr/local/bin/wp"
DATE=$(date +"%Y-%m-%d_%H-%M")
BACKUP_DIR="backups"
# 1. Vérifie que WP-CLI est installé, sinon le télécharge
if ! command -v wp &> /dev/null; then
echo "WP-CLI non détecté. Installation..."
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 "$WP_CLI_PATH"
fi
echo "WP-CLI version : $($WP_CLI_PATH --version)"
# 2. Crée le répertoire de sauvegarde
mkdir -p "$BACKUP_DIR"
# 3. Sauvegarde de la base de données
echo "Export de la base de données..."
$WP_CLI_PATH db export "$BACKUP_DIR/db-$DATE.sql"
# 4. Archivage des fichiers WordPress
echo "Archivage des fichiers du site..."
zip -r "$BACKUP_DIR/site-files-$DATE.zip" . -x "$BACKUP_DIR/*"
# 5. Installation + activation des extensions listées
echo "Installation et activation des extensions : ${PLUGINS[*]}..."
$WP_CLI_PATH plugin install "${PLUGINS[@]}" --activate
# 6. (Optionnel) Réinstallation forcée
# echo "Réinstallation des extensions installées..."
# $WP_CLI_PATH plugin install $($WP_CLI_PATH plugin list --field=name) --force
echo "✅ Script terminé. Sauvegardes disponibles dans ./$BACKUP_DIR"
Code language: PHP (php)
Conclusion
WP‑CLI est un outil puissant et rapide, parfait pour automatiser :
- Sauvegardes (base + fichiers zip)
- Installations, activations et mises à jour groupées
- Entretien et réinstallation d’extensions
Il se révèle particulièrement utile sur les environnements de staging, serveurs cloud ou VPS.
Vous imaginez un projet WordPress ou WooCommerce ? Je vous accompagne à chaque étape pour concrétiser vos ambitions, avec rigueur et transparence.