Il restore tool standalone supporta la personalizzazione del comportamento di ripristino tramite un file di configurazione JSON. Questo fornisce una personalizzazione basata su filtri simile al Plugin WordPress, ma senza richiedere che WordPress sia in esecuzione.
Nota: se non esiste alcun file wpstg-restore-config.json, il restore tool funziona con il suo normale comportamento predefinito.
Come funziona
- Posiziona un file chiamato
wpstg-restore-config.jsonnella stessa directory diwpstg-restore.php. - Il tool legge la configurazione all’avvio e applica i valori dei filtri durante il ripristino.
- Se non esiste alcun file di configurazione, il tool si comporta come al solito usando tutti i valori predefiniti.
Formato del file di configurazione
{
"version": 1,
"filters": {
"filter.name": "value"
}
}
version: versione dello schema. Deve essere1.filters: oggetto che mappa i nomi dei filtri ai loro valori.
Vedi wpstg-restore-config.example.json per un esempio completo con tutti i filtri impostati ai valori predefiniti.
Filtri disponibili
Filtri booleani
Questi filtri accettano true o false.
| Nome filtro | Predefinito | Descrizione |
|---|---|---|
wpstg.backup.restore.keepExistingPlugins | false | Quando è true, i Plugin esistenti non vengono eliminati prima del ripristino. I Plugin del Backup vengono uniti nella directory esistente. |
wpstg.backup.restore.keepExistingThemes | false | Quando è true, i Theme esistenti non vengono eliminati prima del ripristino. |
wpstg.backup.restore.keepExistingMuPlugins | false | Quando è true, i mu-plugin esistenti non vengono eliminati prima del ripristino. |
wpstg.backup.restore.keepExistingMedia | false | Quando è true, gli upload e i file media esistenti non vengono eliminati prima del ripristino. |
wpstg.backup.restore.keepExistingOtherFiles | false | Quando è true, gli altri file in wp-content non vengono eliminati prima del ripristino. |
wpstg.backup.restore.innodbStrictModeOff | false | Quando è true, disattiva la modalità InnoDB strict durante l’importazione del database. Utile quando si ripristina da un server con impostazioni InnoDB diverse. |
Filtri array
Questi filtri accettano un array di stringhe.
| Nome filtro | Predefinito | Descrizione |
|---|---|---|
wpstg.backup.restore.exclude_backup_parts | [] | Parti da saltare interamente durante il ripristino. Valori validi: plugins, themes, uploads, muplugins, wpcontent, wpstgdb, lang, dropins, wproot. |
wpstg.backup.restore.exclude_paths | [] | Percorsi di directory da escludere durante il ripristino dei file. Una / finale viene aggiunta automaticamente, quindi "starter-templates" corrisponde ai percorsi che contengono starter-templates/ ma non starter-templates-pro/. Esempio: ["starter-templates", "elementor"]. |
wpstg.backup.restore.exclude.tables | [] | Nomi delle tabelle del database da saltare durante il ripristino del database. Esempio: ["wp_comments", "wp_commentmeta"]. |
wpstg.database.import.excludedQueries | [] | Pattern di query SQL da saltare durante l’importazione del database. Le query contenenti una qualsiasi di queste stringhe verranno escluse. |
Importante: per exclude_paths, viene aggiunta automaticamente una barra finale. Questo aiuta a evitare corrispondenze parziali accidentali.
Esempi di configurazione
Ripristinare mantenendo i Plugin e i Theme esistenti
{
"version": 1,
"filters": {
"wpstg.backup.restore.keepExistingPlugins": true,
"wpstg.backup.restore.keepExistingThemes": true
}
}
Ripristinare solo il database
Usa questa configurazione per saltare tutte le parti di Backup relative ai file.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": [
"plugins",
"themes",
"uploads",
"muplugins",
"wpcontent",
"dropins",
"wproot",
"lang"
]
}
}
Escludere tabelle specifiche dal ripristino del database
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude.tables": [
"wp_comments",
"wp_commentmeta",
"wp_wc_orders"
]
}
}
Escludere Plugin e Theme specifici dal ripristino dei file
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_paths": [
"starter-templates",
"elementor",
"themes/flavor"
]
}
}
Ripristinare solo i file
Usa questa configurazione per saltare il ripristino del database.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": ["wpstgdb"]
}
}
Come vengono utilizzati i filtri
- Direttamente da
Restorer: i filtrikeepExisting*,exclude_backup_partsedexclude_pathsvengono letti direttamente dalla classeRestorerdel restore tool per controllare quali parti vengono ripristinate, se i file esistenti vengono eliminati prima e quali percorsi di file saltare durante il ripristino. - Tramite
ApplyFiltersTrait: i filtri relativi al database comeexclude.tables,excludedQueriesedinnodbStrictModeOffvengono utilizzati dalla classeDatabaseImporterintegrata tramite l’ApplyFiltersTrait. Questo trait controllaFilterConfigcome fallback quando gli hook WordPress non sono disponibili.
Validazione e logging
- I nomi di filtro sconosciuti vengono registrati come warning e ignorati.
- Le incongruenze di tipo, ad esempio impostare un filtro booleano su un array, vengono registrate come warning e saltate.
- Tutti i filtri attivi vengono registrati all’avvio del ripristino per il debug.
- JSON malformato produce un warning e il ripristino continua con il comportamento predefinito.
- Versioni di configurazione non supportate producono un warning e tutti i filtri vengono saltati.
Suggerimento per il debug: se un filtro non sembra essere applicato, controlla prima i log del ripristino per eventuali warning su nomi di filtro sconosciuti, tipi non validi, JSON malformato o una versione di configurazione non supportata.
Sicurezza
- Vengono accettati solo i nomi di filtro nella whitelist.
- Sono supportati solo tipi primitivi come
boolestring, più array di stringhe. - Non è possibile alcun callable o esecuzione di codice tramite il file di configurazione.