WP Staging Restore Tool – フィルター設定

スタンドアロンの restore ツールでは、JSON 設定ファイルを通じて復元動作のカスタマイズに対応しています。これは WordPress Plugin と同様のフィルターベースのカスタマイズを、WordPress を動作させずに行える仕組みです。

注意: wpstg-restore-config.json ファイルが存在しない場合、restore ツールは通常の既定の動作で実行されます。

仕組み

  1. wpstg-restore.php と同じディレクトリに wpstg-restore-config.json という名前のファイルを配置します。
  2. ツールは起動時にこの設定を読み込み、復元中にフィルターの値を適用します。
  3. 設定ファイルが存在しない場合、ツールは通常どおりすべての既定値を使って動作します。

設定ファイルの形式

{
  "version": 1,
  "filters": {
    "filter.name": "value"
  }
}
  • version: スキーマのバージョン。1 を指定してください。
  • filters: フィルター名と値の対応を表すオブジェクト。

すべてのフィルターを既定値で記述した完全な例については、wpstg-restore-config.example.json をご覧ください。

利用可能なフィルター

真偽値フィルター

これらのフィルターは true または false を受け付けます。

フィルター名既定値説明
wpstg.backup.restore.keepExistingPluginsfalsetrue の場合、復元前に既存の Plugin を削除しません。Backup の Plugin は既存ディレクトリにマージされます。
wpstg.backup.restore.keepExistingThemesfalsetrue の場合、復元前に既存のテーマを削除しません。
wpstg.backup.restore.keepExistingMuPluginsfalsetrue の場合、復元前に既存の mu-plugin を削除しません。
wpstg.backup.restore.keepExistingMediafalsetrue の場合、復元前に既存のアップロードやメディアファイルを削除しません。
wpstg.backup.restore.keepExistingOtherFilesfalsetrue の場合、wp-content 内のその他のファイルを復元前に削除しません。
wpstg.backup.restore.innodbStrictModeOfffalsetrue の場合、データベースインポート中に InnoDB Strict Mode を無効化します。異なる InnoDB 設定のサーバーから復元する場合に有用です。

配列フィルター

これらのフィルターは文字列の配列を受け付けます。

フィルター名既定値説明
wpstg.backup.restore.exclude_backup_parts[]復元中に完全にスキップするパーツです。有効な値: pluginsthemesuploadsmupluginswpcontentwpstgdblangdropinswproot
wpstg.backup.restore.exclude_paths[]ファイル復元中に除外するディレクトリパス。末尾の / は自動で付加されるため、"starter-templates"starter-templates/ を含むパスにはマッチしますが、starter-templates-pro/ にはマッチしません。例: ["starter-templates", "elementor"]
wpstg.backup.restore.exclude.tables[]データベース復元中にスキップするテーブル名。例: ["wp_comments", "wp_commentmeta"]
wpstg.database.import.excludedQueries[]データベースインポート中にスキップする SQL クエリのパターン。これらのいずれかの文字列を含むクエリは除外されます。

重要: exclude_paths では、末尾のスラッシュが自動で付加されます。これにより、意図しない部分一致を避けやすくなります。

設定例

復元するが既存の Plugin とテーマは残す

{
  "version": 1,
  "filters": {
    "wpstg.backup.restore.keepExistingPlugins": true,
    "wpstg.backup.restore.keepExistingThemes": true
  }
}

データベースのみを復元する

ファイル関連の Backup パーツをすべてスキップするには、この設定を使用します。

{
  "version": 1,
  "filters": {
    "wpstg.backup.restore.exclude_backup_parts": [
      "plugins",
      "themes",
      "uploads",
      "muplugins",
      "wpcontent",
      "dropins",
      "wproot",
      "lang"
    ]
  }
}

データベース復元から特定のテーブルを除外する

{
  "version": 1,
  "filters": {
    "wpstg.backup.restore.exclude.tables": [
      "wp_comments",
      "wp_commentmeta",
      "wp_wc_orders"
    ]
  }
}

ファイル復元から特定の Plugin とテーマを除外する

{
  "version": 1,
  "filters": {
    "wpstg.backup.restore.exclude_paths": [
      "starter-templates",
      "elementor",
      "themes/flavor"
    ]
  }
}

ファイルのみを復元する

データベース復元をスキップするには、この設定を使用します。

{
  "version": 1,
  "filters": {
    "wpstg.backup.restore.exclude_backup_parts": ["wpstgdb"]
  }
}

フィルターの利用方法

  1. Restorer による直接利用: keepExisting*exclude_backup_partsexclude_paths の各フィルターは、restore ツールの Restorer クラスから直接読み込まれ、どのパーツを復元するか、既存ファイルを先に削除するかどうか、復元中にどのファイルパスをスキップするかを制御します。
  2. ApplyFiltersTrait 経由での利用: exclude.tablesexcludedQueriesinnodbStrictModeOff のようなデータベース関連のフィルターは、ApplyFiltersTrait を介して同梱の DatabaseImporter クラスで利用されます。このトレイトは、WordPress フックが利用できない場合のフォールバックとして FilterConfig を確認します。

検証とログ出力

  • 未知のフィルター名は警告として記録され、無視されます。
  • 型の不一致(たとえば真偽値のフィルターに配列を設定するなど)は警告として記録され、スキップされます。
  • 有効なフィルターはすべて、復元開始時にデバッグ用に記録されます。
  • 不正な JSON は警告を発生させ、復元は既定の動作で継続されます。
  • サポートされていない設定バージョンは警告を発生させ、すべてのフィルターはスキップされます。

デバッグのヒント: フィルターが適用されていないように見える場合は、まず復元ログで、未知のフィルター名・不正な型・不正な JSON・未対応の設定バージョンに関する警告が出ていないかを確認してください。

セキュリティ

  • 許可リストに含まれるフィルター名のみが受け付けられます。
  • サポートされる型は、boolstring のような基本型と、文字列の配列のみです。
  • 設定ファイルを通じて、callable やコードの実行を行うことはできません。

Updated on 5月 23, 2026

Rene Hermenau

著者: Rene Hermenau

著者について: René Hermenau は WP STAGING の創設者です。WordPress のバックアップ、ステージング、移行、データベース処理、安全なデプロイメントワークフローに取り組んでいます。