L’outil de restauration autonome permet de personnaliser le comportement de restauration via un fichier de configuration JSON. Cela fournit une personnalisation basée sur des filtres similaire au plugin WordPress, mais sans nécessiter que WordPress soit en cours d’exécution.
Remarque : Si aucun fichier wpstg-restore-config.json n’existe, l’outil de restauration fonctionne avec son comportement par défaut normal.
Comment ça fonctionne
- Place un fichier nommé
wpstg-restore-config.jsondans le même répertoire quewpstg-restore.php. - L’outil lit la configuration au démarrage et applique les valeurs des filtres pendant la restauration.
- Si aucun fichier de configuration n’existe, l’outil se comporte normalement en utilisant toutes les valeurs par défaut.
Format du fichier de configuration
{
"version": 1,
"filters": {
"filter.name": "value"
}
}
version: Version du schéma. Doit être1.filters: Objet associant les noms de filtres à leurs valeurs.
Consulte wpstg-restore-config.example.json pour un exemple complet avec tous les filtres définis sur leurs valeurs par défaut.
Filtres disponibles
Filtres booléens
Ces filtres acceptent true ou false.
| Nom du filtre | Défaut | Description |
|---|---|---|
wpstg.backup.restore.keepExistingPlugins | false | Quand true, les plugins existants ne sont pas supprimés avant la restauration. Les plugins de la sauvegarde sont fusionnés dans le répertoire existant. |
wpstg.backup.restore.keepExistingThemes | false | Quand true, les themes existants ne sont pas supprimés avant la restauration. |
wpstg.backup.restore.keepExistingMuPlugins | false | Quand true, les mu-plugins existants ne sont pas supprimés avant la restauration. |
wpstg.backup.restore.keepExistingMedia | false | Quand true, les fichiers médias et les téléchargements existants ne sont pas supprimés avant la restauration. |
wpstg.backup.restore.keepExistingOtherFiles | false | Quand true, les autres fichiers dans wp-content ne sont pas supprimés avant la restauration. |
wpstg.backup.restore.innodbStrictModeOff | false | Quand true, désactive le mode strict InnoDB pendant l’import de la base de données. Utile lors de la restauration depuis un serveur avec des paramètres InnoDB différents. |
Filtres de tableau
Ces filtres acceptent un tableau de chaînes.
| Nom du filtre | Défaut | Description |
|---|---|---|
wpstg.backup.restore.exclude_backup_parts | [] | Parties à ignorer entièrement pendant la restauration. Valeurs valides : plugins, themes, uploads, muplugins, wpcontent, wpstgdb, lang, dropins, wproot. |
wpstg.backup.restore.exclude_paths | [] | Chemins de répertoire à exclure lors de la restauration de fichiers. Un slash final / est ajouté automatiquement, donc "starter-templates" correspond aux chemins contenant starter-templates/ mais pas starter-templates-pro/. Exemple : ["starter-templates", "elementor"]. |
wpstg.backup.restore.exclude.tables | [] | Noms de tables de base de données à ignorer lors de la restauration de la base de données. Exemple : ["wp_comments", "wp_commentmeta"]. |
wpstg.database.import.excludedQueries | [] | Motifs de requêtes SQL à ignorer lors de l’import de la base de données. Les requêtes contenant l’une de ces chaînes seront exclues. |
Important : Pour exclude_paths, un slash final est ajouté automatiquement. Cela permet d’éviter les correspondances partielles accidentelles.
Exemples de configurations
Restaurer en conservant les plugins et themes existants
{
"version": 1,
"filters": {
"wpstg.backup.restore.keepExistingPlugins": true,
"wpstg.backup.restore.keepExistingThemes": true
}
}
Restaurer uniquement la base de données
Utilise cette configuration pour ignorer toutes les parties de sauvegarde liées aux fichiers.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": [
"plugins",
"themes",
"uploads",
"muplugins",
"wpcontent",
"dropins",
"wproot",
"lang"
]
}
}
Exclure des tables spécifiques de la restauration de la base de données
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude.tables": [
"wp_comments",
"wp_commentmeta",
"wp_wc_orders"
]
}
}
Exclure des plugins et themes spécifiques de la restauration de fichiers
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_paths": [
"starter-templates",
"elementor",
"themes/flavor"
]
}
}
Restaurer uniquement les fichiers
Utilise cette configuration pour ignorer la restauration de la base de données.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": ["wpstgdb"]
}
}
Comment les filtres sont consommés
- Directement par
Restorer: Les filtreskeepExisting*,exclude_backup_partsetexclude_pathssont lus directement par la classeRestorerde l’outil de restauration pour contrôler quelles parties sont restaurées, si les fichiers existants sont supprimés en premier et quels chemins de fichiers ignorer pendant la restauration. - Via
ApplyFiltersTrait: Les filtres liés à la base de données tels queexclude.tables,excludedQueriesetinnodbStrictModeOffsont consommés par la classeDatabaseImporterintégrée viaApplyFiltersTrait. Ce trait vérifieFilterConfigcomme solution de repli lorsque les hooks WordPress ne sont pas disponibles.
Validation et journalisation
- Les noms de filtres inconnus sont enregistrés comme avertissements et ignorés.
- Les incompatibilités de type, par exemple définir un filtre booléen sur un tableau, sont enregistrées comme avertissements et ignorées.
- Tous les filtres actifs sont enregistrés au démarrage de la restauration à des fins de débogage.
- Un JSON mal formé produit un avertissement et la restauration continue avec le comportement par défaut.
- Les versions de configuration non prises en charge produisent un avertissement et tous les filtres sont ignorés.
Astuce de débogage : Si un filtre ne semble pas s’appliquer, vérifie d’abord les journaux de restauration pour les avertissements concernant des noms de filtres inconnus, des types invalides, un JSON mal formé ou une version de configuration non prise en charge.
Sécurité
- Seuls les noms de filtres en liste blanche sont acceptés.
- Seuls les types primitifs tels que
booletstring, ainsi que les tableaux de chaînes, sont pris en charge. - Aucun code exécutable ni appel de fonction n’est possible via le fichier de configuration.