Ferramenta de restauro do WP STAGING – configuração de filtros

A ferramenta de restauro standalone suporta personalização do comportamento do restauro através de um ficheiro de configuração JSON. Isto disponibiliza personalização baseada em filtros semelhante à do Plugin WordPress, mas sem precisar que o WordPress esteja a correr.

Nota: Se não existir nenhum ficheiro wpstg-restore-config.json, a ferramenta de restauro corre com o comportamento predefinido normal.

Como funciona

  1. Coloca um ficheiro chamado wpstg-restore-config.json na mesma diretoria do wpstg-restore.php.
  2. A ferramenta lê a configuração no arranque e aplica os valores dos filtros durante o restauro.
  3. Se não existir ficheiro de configuração, a ferramenta comporta-se como de costume, usando todas as predefinições.

Formato do ficheiro de configuração

{
  "version": 1,
  "filters": {
    "filter.name": "value"
  }
}
  • version: Versão do esquema. Tem de ser 1.
  • filters: Objeto que mapeia nomes de filtros para os seus valores.

Consulta wpstg-restore-config.example.json para um exemplo completo com todos os filtros definidos com os valores predefinidos.

Filtros disponíveis

Filtros booleanos

Estes filtros aceitam true ou false.

Nome do filtroPredefiniçãoDescrição
wpstg.backup.restore.keepExistingPluginsfalseQuando true, os Plugins existentes não são apagados antes do restauro. Os Plugins do Backup são fundidos com a diretoria existente.
wpstg.backup.restore.keepExistingThemesfalseQuando true, os Themes existentes não são apagados antes do restauro.
wpstg.backup.restore.keepExistingMuPluginsfalseQuando true, os mu-plugins existentes não são apagados antes do restauro.
wpstg.backup.restore.keepExistingMediafalseQuando true, os uploads e ficheiros media existentes não são apagados antes do restauro.
wpstg.backup.restore.keepExistingOtherFilesfalseQuando true, outros ficheiros em wp-content não são apagados antes do restauro.
wpstg.backup.restore.innodbStrictModeOfffalseQuando true, desativa o modo estrito do InnoDB durante a importação da base de dados. Útil ao restaurar a partir de um servidor com definições InnoDB diferentes.

Filtros de array

Estes filtros aceitam um array de strings.

Nome do filtroPredefiniçãoDescrição
wpstg.backup.restore.exclude_backup_parts[]Partes a saltar inteiramente durante o restauro. Valores válidos: plugins, themes, uploads, muplugins, wpcontent, wpstgdb, lang, dropins, wproot.
wpstg.backup.restore.exclude_paths[]Caminhos de diretorias a excluir durante o restauro de ficheiros. É adicionado automaticamente um / final, por isso "starter-templates" corresponde a caminhos que contenham starter-templates/ mas não starter-templates-pro/. Exemplo: ["starter-templates", "elementor"].
wpstg.backup.restore.exclude.tables[]Nomes de tabelas da base de dados a saltar durante o restauro. Exemplo: ["wp_comments", "wp_commentmeta"].
wpstg.database.import.excludedQueries[]Padrões de queries SQL a saltar durante a importação. Queries que contenham qualquer uma destas strings serão excluídas.

Importante: Para exclude_paths, é adicionada automaticamente uma barra final. Isto ajuda a evitar correspondências parciais acidentais.

Exemplos de configuração

Restaurar mas manter os Plugins e Themes existentes

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

Restaurar apenas a base de dados

Usa esta configuração para saltar todas as partes do Backup relacionadas com ficheiros.

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

Excluir tabelas específicas do restauro da base de dados

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

Excluir Plugins e Themes específicos do restauro de ficheiros

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

Restaurar apenas ficheiros

Usa esta configuração para saltar o restauro da base de dados.

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

Como os filtros são consumidos

  1. Diretamente pelo Restorer: Os filtros keepExisting*, exclude_backup_parts e exclude_paths são lidos diretamente pela classe Restorer da ferramenta de restauro para controlar que partes são restauradas, se os ficheiros existentes são apagados primeiro e que caminhos de ficheiros saltar durante o restauro.
  2. Via ApplyFiltersTrait: Os filtros relacionados com a base de dados, como exclude.tables, excludedQueries e innodbStrictModeOff, são consumidos pela classe DatabaseImporter incluída, através do ApplyFiltersTrait. Este trait verifica o FilterConfig como fallback quando os hooks do WordPress não estão disponíveis.

Validação e logging

  • Nomes de filtros desconhecidos são registados como avisos e ignorados.
  • Incompatibilidades de tipo, por exemplo definir um filtro booleano como array, são registadas como avisos e ignoradas.
  • Todos os filtros ativos são registados no arranque do restauro para fins de debugging.
  • JSON malformado produz um aviso e o restauro continua com o comportamento predefinido.
  • Versões de configuração não suportadas produzem um aviso e todos os filtros são ignorados.

Dica de debugging: Se um filtro parecer não aplicar-se, primeiro consulta os logs de restauro à procura de avisos sobre nomes de filtros desconhecidos, tipos inválidos, JSON malformado ou versão de configuração não suportada.

Segurança

  • Apenas nomes de filtros incluídos na whitelist são aceites.
  • Apenas tipos primitivos como bool e string, mais arrays de strings, são suportados.
  • Não é possível qualquer callable ou execução de código através do ficheiro de configuração.

Updated on May 23, 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.