WP Staging Restore Tool – konfiguracja filtrów

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

  1. Umieść plik o nazwie wpstg-restore-config.json w tym samym katalogu co wpstg-restore.php.
  2. Narzędzie odczytuje konfigurację przy starcie i stosuje wartości filtrów podczas przywracania.
  3. 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 filtraDomyślnieOpis
wpstg.backup.restore.keepExistingPluginsfalseGdy true, istniejące pluginy nie są usuwane przed przywracaniem. Pluginy z Backupu są scalane z istniejącym katalogiem.
wpstg.backup.restore.keepExistingThemesfalseGdy true, istniejące motywy nie są usuwane przed przywracaniem.
wpstg.backup.restore.keepExistingMuPluginsfalseGdy true, istniejące mu-pluginy nie są usuwane przed przywracaniem.
wpstg.backup.restore.keepExistingMediafalseGdy true, istniejące uploads i pliki mediów nie są usuwane przed przywracaniem.
wpstg.backup.restore.keepExistingOtherFilesfalseGdy true, inne pliki w wp-content nie są usuwane przed przywracaniem.
wpstg.backup.restore.innodbStrictModeOfffalseGdy 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 filtraDomyślnieOpis
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

  1. Bezpośrednio przez Restorer: Filtry keepExisting*, exclude_backup_parts i exclude_paths są odczytywane bezpośrednio przez klasę Restorer narzę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.
  2. Przez ApplyFiltersTrait: Filtry związane z bazą danych, np. exclude.tables, excludedQueries i innodbStrictModeOff, są używane przez wbudowaną klasę DatabaseImporter przez ApplyFiltersTrait. Ten trait sprawdza FilterConfig jako 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. bool i string, plus tablice stringów.
  • Nie da się wykonać callable ani kodu przez plik konfiguracyjny.

Updated on 23 maja, 2026

Rene Hermenau

Autor: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.