Samodzielne narzędzie restore obsługuje dostosowywanie zachowania przywracania za pomocą pliku konfiguracyjnego JSON. Zapewnia to dostosowywanie oparte na filtrach, podobnie jak w pluginie WordPress, ale bez konieczności uruchomionego WordPress.
Uwaga: Jeśli plik wpstg-restore-config.json nie istnieje, narzędzie restore działa ze zwykłym domyślnym zachowaniem.
Jak to działa
- Umieść plik o nazwie
wpstg-restore-config.jsonw tym samym katalogu cowpstg-restore.php. - Narzędzie odczytuje konfigurację przy starcie i stosuje wartości filtrów podczas przywracania.
- Jeśli nie ma pliku konfiguracyjnego, narzędzie działa jak zwykle, z domyślnymi ustawieniami.
Format pliku konfiguracyjnego
{
"version": 1,
"filters": {
"filter.name": "value"
}
}
version: wersja schematu. Musi być1.filters: obiekt mapujący nazwy filtrów na ich wartości.
Zobacz wpstg-restore-config.example.json dla pełnego przykładu ze wszystkimi filtrami ustawionymi na wartości domyślne.
Dostępne filtry
Filtry boolowskie
Te filtry przyjmują true lub false.
| Nazwa filtra | Domyślnie | Opis |
|---|---|---|
wpstg.backup.restore.keepExistingPlugins | false | Gdy true, istniejące pluginy nie są usuwane przed przywracaniem. Pluginy z Backupu są scalane z istniejącym katalogiem. |
wpstg.backup.restore.keepExistingThemes | false | Gdy true, istniejące motywy nie są usuwane przed przywracaniem. |
wpstg.backup.restore.keepExistingMuPlugins | false | Gdy true, istniejące mu-pluginy nie są usuwane przed przywracaniem. |
wpstg.backup.restore.keepExistingMedia | false | Gdy true, istniejące uploads i pliki mediów nie są usuwane przed przywracaniem. |
wpstg.backup.restore.keepExistingOtherFiles | false | Gdy true, inne pliki w wp-content nie są usuwane przed przywracaniem. |
wpstg.backup.restore.innodbStrictModeOff | false | Gdy true, wyłącza tryb InnoDB strict podczas importu bazy danych. Przydatne przy przywracaniu z serwera o innych ustawieniach InnoDB. |
Filtry tablicowe
Te filtry przyjmują tablicę stringów.
| Nazwa filtra | Domyślnie | Opis |
|---|---|---|
wpstg.backup.restore.exclude_backup_parts | [] | Części do całkowitego pominięcia podczas przywracania. Dozwolone wartości: plugins, themes, uploads, muplugins, wpcontent, wpstgdb, lang, dropins, wproot. |
wpstg.backup.restore.exclude_paths | [] | Ścieżki katalogów do wykluczenia podczas przywracania plików. Końcowy / jest dodawany automatycznie, więc "starter-templates" dopasowuje się do ścieżek zawierających starter-templates/, ale nie starter-templates-pro/. Przykład: ["starter-templates", "elementor"]. |
wpstg.backup.restore.exclude.tables | [] | Nazwy tabel bazy danych do pominięcia podczas przywracania DB. Przykład: ["wp_comments", "wp_commentmeta"]. |
wpstg.database.import.excludedQueries | [] | Wzorce zapytań SQL do pominięcia podczas importu bazy danych. Zapytania zawierające którykolwiek z tych ciągów zostaną wykluczone. |
Ważne: Dla exclude_paths końcowy slash jest dodawany automatycznie. Pomaga to uniknąć przypadkowych częściowych dopasowań.
Przykładowe konfiguracje
Przywróć, ale zachowaj istniejące pluginy i motywy
{
"version": 1,
"filters": {
"wpstg.backup.restore.keepExistingPlugins": true,
"wpstg.backup.restore.keepExistingThemes": true
}
}
Przywróć tylko bazę danych
Użyj tej konfiguracji, aby pominąć wszystkie części Backupu związane z plikami.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": [
"plugins",
"themes",
"uploads",
"muplugins",
"wpcontent",
"dropins",
"wproot",
"lang"
]
}
}
Wyklucz konkretne tabele z przywracania bazy danych
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude.tables": [
"wp_comments",
"wp_commentmeta",
"wp_wc_orders"
]
}
}
Wyklucz konkretne pluginy i motywy z przywracania plików
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_paths": [
"starter-templates",
"elementor",
"themes/flavor"
]
}
}
Przywróć tylko pliki
Użyj tej konfiguracji, aby pominąć przywracanie bazy danych.
{
"version": 1,
"filters": {
"wpstg.backup.restore.exclude_backup_parts": ["wpstgdb"]
}
}
Jak filtry są używane
- Bezpośrednio przez
Restorer: FiltrykeepExisting*,exclude_backup_partsiexclude_pathssą odczytywane bezpośrednio przez klasęRestorernarzędzia restore, aby kontrolować, które części są przywracane, czy istniejące pliki są najpierw usuwane oraz które ścieżki plików pominąć podczas przywracania. - Przez
ApplyFiltersTrait: Filtry związane z bazą danych, np.exclude.tables,excludedQueriesiinnodbStrictModeOff, są używane przez wbudowaną klasęDatabaseImporterprzezApplyFiltersTrait. Ten trait sprawdzaFilterConfigjako fallback, gdy hooki WordPress nie są dostępne.
Walidacja i logowanie
- Nieznane nazwy filtrów są logowane jako ostrzeżenia i ignorowane.
- Niezgodności typów, np. ustawienie filtra boolowskiego na tablicę, są logowane jako ostrzeżenia i pomijane.
- Wszystkie aktywne filtry są logowane przy starcie przywracania do celów debugowania.
- Zniekształcony JSON powoduje ostrzeżenie, a przywracanie kontynuuje z domyślnym zachowaniem.
- Nieobsługiwane wersje konfiguracji powodują ostrzeżenie, a wszystkie filtry są pomijane.
Wskazówka debugowania: Jeśli filtr nie wydaje się działać, najpierw sprawdź logi przywracania pod kątem ostrzeżeń o nieznanych nazwach filtrów, nieprawidłowych typach, zniekształconym JSON lub nieobsługiwanej wersji konfiguracji.
Bezpieczeństwo
- Akceptowane są tylko nazwy filtrów z białej listy.
- Obsługiwane są tylko typy prymitywne, np.
boolistring, plus tablice stringów. - Nie da się wykonać callable ani kodu przez plik konfiguracyjny.