Skip to content

Tudo para WordPress, desenvolvimento web — e não só

🔍 Pesquisar e substituir no phpMyAdmin: como substituir texto e URLs numa base de dados WordPress

🔍 Pesquisar e substituir no phpMyAdmin: como substituir texto e URLs numa base de dados WordPress

💡 Visão geral rápida:

  • o que é a pesquisa e substituição no phpMyAdmin e quando precisa dela;
  • consulta SQL passo a passo para substituir texto em toda a base de dados do WordPress;
  • como substituir URLs antigas por novas em massa através do phpMyAdmin;
  • visão geral de duas alternativas em plugin, Better Search Replace e Search & Replace.

O que é a pesquisa e substituição no phpMyAdmin e porque precisa dela

Imagine que mudou o seu domínio, fez um rebranding ou atualizou a estrutura de permalinks. Algures nas profundezas da base de dados do WordPress, centenas de referências antigas permanecem em artigos, campos meta e definições do tema. Abrir cada registo e corrigi-lo manualmente? Num site de cinco páginas, talvez. Em duzentas páginas, é um dia perdido.

O phpMyAdmin é uma interface web para gerir MySQL que vem incluída no cPanel de praticamente qualquer alojamento. Com ele, executa uma consulta SQL que localiza e substitui uma string especificada em todos os registos da base de dados numa única passagem. Sem plugins, sem código extra, apenas você, o seu navegador e a consulta certa.

No entanto, este método tem uma ressalva: um erro de sintaxe pode afetar os dados errados. É por isso que vamos detalhar as consultas peça por peça e, no final, mostraremos alguns plugins que eliminam o risco manual e fornecem uma pré-visualização antes da substituição.

Como localizar e substituir texto através do phpMyAdmin

O cenário mais comum é substituir uma palavra ou frase em todos os artigos de uma só vez. Por exemplo, um nome antigo da empresa por um novo, um termo desatualizado ou um email incorreto. Precisa apenas de uma consulta UPDATE no phpMyAdmin.

Passo 1: aceder ao phpMyAdmin através do cPanel

Abra o cPanel do seu alojamento, localize a secção «Bases de Dados» e clique no ícone do phpMyAdmin. Inicie sessão (normalmente, o nome de utilizador e a palavra-passe são os mesmos do cPanel).

Passo 2: selecionar a base de dados do seu site

Após iniciar sessão, aparece uma lista de bases de dados à esquerda. Clique na que pertence ao seu site WordPress. Se não se lembrar do nome, verifique o ficheiro wp-config.php: a linha define('DB_NAME', 'database_name').

Passo 3: ir para o separador SQL

Na barra de ferramentas superior, clique no botão SQL para abrir a janela de introdução da consulta.

Janela de consulta SQL na interface do phpMyAdmin

Passo 4: introduzir a consulta SQL para substituir texto

A sintaxe básica tem este aspeto:

1UPDATE table_name SET field_name =
2REPLACE(field_name, 'search_term', 'replacement_term');

Para substituir texto em todos os artigos do WordPress, a consulta é:

1UPDATE wp_posts SET post_content =
2REPLACE(post_content, 'old text', 'new text');

Detalhando: UPDATE wp_posts tem como alvo a tabela de artigos; SET post_content modifica o campo post_content; REPLACE(post_content, 'A', 'B') é uma função que localiza a substring A e substitui-a por B. Importante: o prefixo da tabela pode não ser wp_; verifique o valor de $table_prefix no ficheiro wp-config.php.

⚠️ Antes de executar a consulta, certifique-se de que faz uma cópia de segurança da base de dados. No cPanel, utilize a secção de Cópias de Segurança ou use um plugin como o UpdraftPlus. As consultas SQL são irreversíveis; não existe um botão «desfazer».

Passo 5: executar a consulta

Clique no botão «Executar» no canto inferior direito. O phpMyAdmin executará a consulta e exibirá uma mensagem com o número de linhas afetadas (por exemplo, «Linhas afetadas: 47»). Isto significa que 47 registos continham o texto pesquisado e foram atualizados.

Resultado da execução de uma consulta SQL no phpMyAdmin

Concluído. Navegue pelo seu site e verifique algumas páginas; o texto antigo deverá ter sido substituído.

Como substituir URLs numa base de dados WordPress através do phpMyAdmin

Substituir URLs é mais complexo do que substituir texto, porque os endereços não estão armazenados numa única tabela, mas sim dispersos por várias. Eis onde procurar:

Lista de tabelas da base de dados WordPress no phpMyAdmin
  • Artigos e páginas: campo post_content na tabela wp_posts
  • Campos meta (campos personalizados): meta_value em wp_postmeta
  • Configurações de temas e plugins: option_value em wp_options
  • Comentários: comment_content em wp_comments
  • Menus (gestor de links legado): link_url e link_image em wp_links
  • Metadados de utilizadores: meta_value em wp_usermeta

Para cobrir tudo de uma vez, execute este conjunto de consultas (copie uma de cada vez e clique em Executar após cada uma):

1UPDATE wp_options SET option_value =
2REPLACE(option_value, 'http://old-domain.com', 'https://new-domain.com')
3WHERE option_name = 'home' OR option_name = 'siteurl';
4
5UPDATE wp_posts SET post_content =
6REPLACE(post_content, 'http://old-domain.com', 'https://new-domain.com');
7
8UPDATE wp_postmeta SET meta_value =
9REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');
10
11UPDATE wp_comments SET comment_content =
12REPLACE(comment_content, 'http://old-domain.com', 'https://new-domain.com');
13
14UPDATE wp_links SET link_url =
15REPLACE(link_url, 'http://old-domain.com', 'https://new-domain.com');
16
17UPDATE wp_usermeta SET meta_value =
18REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');

⚠️ Mais uma vez: antes de executar, crie uma cópia de segurança completa. Se o seu site utiliza dados serializados (a maioria dos temas e plugins utiliza), a simples substituição de texto pode corromper a estrutura. Nesse caso, é preferível usar os plugins da secção seguinte, que lidam corretamente com a serialização.

Plugins para pesquisar e substituir no WordPress

O método manual via phpMyAdmin é rápido, mas inseguro para principiantes. Os plugins resolvem dois problemas principais: fornecem uma pré-visualização antes da substituição (simulação) e tratam corretamente os dados serializados. Vejamos duas opções comprovadas.

Better Search Replace

Interface do plugin Better Search Replace no painel de administração do WordPress

O Better Search Replace é o plugin gratuito mais popular para esta tarefa, com mais de um milhão de instalações ativas. Baseia-se no script open-source interconnect/it Search Replace DB e utiliza funções nativas do WordPress em vez de consultas SQL diretas.

Como usar o plugin:

  • Instale e ative-o em "Plugins → Adicionar novo".
  • Vá a "Ferramentas → Better Search Replace".
  • No campo "Procurar por", introduza o texto ou URL a localizar.
  • No campo "Substituir por", introduza o substituto.
  • No bloco "Selecionar tabelas", escolha as tabelas necessárias (ou todas).
  • Ative "Executar como simulação" para um teste sem substituição real. O plugin mostrará quantas correspondências foram encontradas e em que tabelas.
Configurações do plugin Better Search Replace com a opção de simulação

Após rever, desative "Simulação" e execute a substituição novamente, desta vez com as alterações a serem efetivamente guardadas.

Vantagens: trata corretamente os dados serializados, pelo que os URLs não se quebram após a substituição. Desvantagens: não cria uma cópia de segurança automática antes da substituição (faça-a você mesmo com o UpdraftPlus ou similar).

Preço: gratuito.

🔗 Better Search Replace no WordPress.org

Search & Replace

Interface do plugin Search and Replace no painel do WordPress

Search & Replace da equipa WP Media é uma alternativa com cópia de segurança integrada. Antes da substituição, o plugin pode criar um dump da base de dados e guardá-lo. Se algo correr mal, restaura a partir da cópia de segurança em dois cliques.

Funcionalidades adicionais:

  • substituição de domínio/URL num só clique (separador próprio «Replace Domain / URL»);
  • suporte a CSV para substituição em lote (formato: «termo de pesquisa; termo de substituição»);
  • alteração do prefixo das tabelas;
  • suporte a multisite.

O plugin tem mais de 100 000 instalações ativas e uma classificação de 4,3. Oficialmente, não foi testado com as versões mais recentes do WordPress, mas as avaliações dos utilizadores confirmam um funcionamento estável no WP 6.8 com PHP 8.2.

Contras: a interface é menos intuitiva do que a do Better Search Replace, com uma curva de aprendizagem ligeiramente mais acentuada.

Preço: gratuito.

🔗 Search & Replace no WordPress.org

O que escolher: plugin ou phpMyAdmin?

Guia rápido: se vai substituir 1 ou 2 palavras no texto das publicações e tem confiança com sintaxe SQL, o phpMyAdmin é mais rápido. Se vai alterar domínios, trabalhar com dados serializados ou não quer mexer manualmente na base de dados, instale o Better Search Replace e faça uma simulação. Se precisa de cópia de segurança integrada e substituição em lote, utilize o Search & Replace.

⁉️🤔 Perguntas frequentes

Posso desfazer uma substituição depois de executar uma consulta SQL?

Não, uma consulta SQL no phpMyAdmin é irreversível. É exatamente por isso que uma cópia de segurança completa da base de dados é obrigatória antes de qualquer substituição. Crie-a através do cPanel (Backup → Download MySQL Database) ou com um plugin como o UpdraftPlus. Com uma cópia de segurança, pode sempre reverter a base de dados para o estado anterior.

O que são dados serializados e porque é que uma simples substituição de URL os corrompe?

A serialização é uma forma de empacotar estruturas complexas (arrays, objetos) numa string para armazenamento na base de dados. O WordPress utiliza-a para definições de temas, dados de plugins e widgets. A string s:26:"http://old-domain.com" significa «uma string de 26 caracteres». Se substituir o domínio por um mais curto ou mais longo, o comprimento em s:26 deixará de corresponder ao conteúdo real e o WordPress não conseguirá ler os dados. Os plugins (Better Search Replace, Search & Replace) recalculam o comprimento automaticamente. A substituição direta por SQL não o faz.

Tenho de usar o phpMyAdmin ou posso usar o WP-CLI?

O WP-CLI é uma excelente alternativa se tiver acesso SSH. O comando wp search-replace 'old-domain' 'new-domain' faz o mesmo, mas com tratamento automático da serialização. Na verdade, é mais seguro do que o phpMyAdmin, porque o WP-CLI funciona através da API do WordPress e não diretamente com o MySQL. No entanto, nem todos os fornecedores de alojamento oferecem acesso SSH nos planos mais económicos, enquanto o phpMyAdmin está disponível em quase todo o lado.

Posso substituir apenas em artigos específicos em vez de em toda a base de dados?

Sim, adicione uma condição WHERE à consulta SQL. Por exemplo, para substituir texto apenas em artigos de uma categoria específica: primeiro encontre o ID da categoria e depois:

1> UPDATE wp_posts SET post_content =
2> REPLACE(post_content, 'old', 'new')
3> WHERE ID IN (
4> SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 12
5> );
6>

Mas é muito mais fácil fazer uma substituição completa com uma simulação no Better Search Replace; o plugin mostrará a tabela e o número de correspondências, e pode desmarcar manualmente as tabelas desnecessárias.

O que devo fazer se o site deixar de carregar após uma substituição de URL?

Primeiro, não entre em pânico. Segundo, restaure a base de dados a partir da sua cópia de segurança (fez uma cópia de segurança, certo?). Terceiro, a causa provável são dados serializados corrompidos. Use o plugin Better Search Replace, que foi especificamente concebido para a substituição de domínios e trata a serialização corretamente. Depois de restaurar a base de dados, execute a substituição através dele.

Qual o método de pesquisa e substituição a escolher: resumo final

A escolha depende de três fatores: o que está a alterar, a dimensão do site e o seu nível de conforto com SQL.

  • Texto em alguns artigos → phpMyAdmin com UPDATE wp_posts. Rápido, mas sem pré-visualização.
  • Alteração completa de domínio ou migração para HTTPS → Better Search Replace. A simulação mostra todas as linhas afetadas antes da substituição real, e o tratamento integrado da serialização evita dados corrompidos. Este é o padrão de referência para migrações.
  • Necessidade de cópia de segurança integrada → Search & Replace. Cria um dump da base de dados antes da substituição e pode restaurá-lo.

A regra de ouro mantém-se inalterada: cópia de segurança, cópia de segurança e mais uma cópia de segurança antes de mexer na base de dados, seja de que forma for. Um único comando UPDATE sem cópia de segurança pode deitar o site abaixo, mas com uma cópia de segurança é apenas uma ferramenta de trabalho que poupa horas de trabalho rotineiro.