Skip to content

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

🔍 Como encontrar e substituir texto em todo o seu site WordPress

🔍 Como encontrar e substituir texto em todo o seu site WordPress

Está a escrever um artigo no WordPress há meia hora, com os dedos a voar e as ideias a fluir. Publica e… repara que escreveu mal o nome de um plugin. Não apenas num sítio. Em todo o texto. E depois lembra-se: tem escrito esse nome assim nos últimos seis meses, ao longo de uma centena de outros artigos.

Abrir cada artigo manualmente e procurar as gralhas? Talvez se forem cinco. Mas e se forem quinhentos?

O WordPress não oferece um botão «localizar e substituir» de raiz, nem no editor, nem em toda a base de dados. Mas isto tem solução com plugins gratuitos e um trecho de código. Sem phpMyAdmin, sem consultas SQL manuais, sem o risco de deitar o site abaixo com um comando errado.

💡 Resumo rápido:

  • Integre a pesquisa e substituição diretamente no editor: o plugin Advanced Editor Tools adiciona um botão Localizar e Substituir ao editor visual em 2 minutos
  • Substitua texto em toda a base de dados: o Better Search Replace pesquisa e substitui strings em todas as tabelas, com pré-visualização e suporte para dados serializados
  • Configure regras de substituição automática: o Real-Time Find and Replace troca o texto «em tempo real» quando a página é renderizada, sem tocar na base de dados
  • Adicione links automáticos por palavra-chave: uma função PHP no functions.php envolve palavras específicas em links em todos os artigos de uma só vez

O vídeo abaixo demonstra a pesquisa e substituição em conteúdo WordPress:

Pesquisar e substituir texto no editor do WordPress

O editor clássico do WordPress não tem um botão «Localizar e Substituir», ao contrário do Google Docs, do Word e de quase todos os outros processadores de texto. O editor de blocos Gutenberg também não tem. Mas pode adicioná-lo.

O plugin Advanced Editor Tools trata disso (anteriormente chamado TinyMCE Advanced). Ele expande a barra de ferramentas do editor visual, e um dos botões disponíveis é o Localizar e Substituir.

Botão localizar e substituir no editor visual do WordPress

A instalação é a habitual: «Plugins» → «Adicionar Novo» → pesquisar «Advanced Editor Tools» → «Instalar» → «Ativar». Após a ativação:

  • Vá a Configurações → Advanced Editor Tools
  • Encontre Localizar e Substituir entre os botões não utilizados
  • Arraste-o para a barra de ferramentas do editor
  • Guarde as alterações

Pronto. Agora, ao editar qualquer artigo no editor visual, aparece um botão de pesquisa e substituição no topo. Introduza o texto a localizar, introduza a substituição, o plugin destaca as correspondências e pode substituir uma a uma ou todas de uma vez.

A desvantagem: só funciona dentro de um único artigo. Se precisar de percorrer centenas de artigos, precisa de uma ferramenta mais potente.

Pesquisar e substituir em toda a base de dados com o Better Search Replace

Quando um erro está espalhado por dezenas ou centenas de registos, editar manualmente cada artigo torna-se um trabalho de uma semana. Para isto, existe o Better Search Replace, um plugin gratuito da WP Engine que pesquisa e substitui texto diretamente na base de dados do WordPress.

Interface de pesquisa e substituição do Better Search Replace no WordPress

Funcionalidades:

  • Pesquisa em toda a base de dados ou em tabelas selecionadas (wp_posts, wp_postmeta, etc.)
  • Suporte para dados serializados: o plugin lida corretamente com arrays e objetos sem os corromper
  • Modo Dry Run: uma execução de teste sem fazer alterações; vê quantas células serão afetadas e depois decide se aplica a substituição
  • Suporte para multisite

Como funciona: «Ferramentas» → «Better Search Replace» → introduza a string de pesquisa e a string de substituição → selecione as tabelas → execute Dry Run → reveja o resultado → se tudo estiver bem, desmarque Dry Run e execute a substituição real.

Antes de qualquer operação na base de dados, faça uma cópia de segurança. O Better Search Replace não desfaz alterações. Se cometer um erro na string de substituição, só pode restaurar os dados a partir de uma cópia de segurança.

O plugin é atualizado regularmente: a versão 1.4.10 foi lançada em janeiro de 2025. O autor é a equipa da WP Engine, com 543 avaliações no WordPress.org e uma classificação média acima de 4 estrelas. As instalações ativas ultrapassam um milhão.

Substituição automática de texto em tempo real com o Real-Time Find and Replace

Por vezes, não precisa de uma correção pontual de gralhas, mas de uma regra permanente: por exemplo, substituir palavrões em comentários, trocar um placeholder de anúncio por código JavaScript ou corrigir automaticamente o nome de um serviço rebatizado em todas as publicações existentes e futuras.

O Word Replacer costumava tratar disto, mas o plugin foi encerrado e não é atualizado há 12 anos. A alternativa atual é o Real-Time Find and Replace.

Interface de regras do Real-Time Find and Replace no WordPress

Como funciona: o plugin troca o texto no momento em que a página é renderizada, antes de chegar ao navegador do utilizador. A base de dados permanece inalterada. Todas as regras residem nas configurações do plugin e pode desativar ou modificar qualquer regra a qualquer momento, sem consequências.

O que a versão gratuita pode fazer:

  • Substituir texto e código HTML por correspondência exata
  • Suporte para expressões regulares (regex) para padrões complexos
  • Substituir conteúdo em temas e outros plugins sem editar os seus ficheiros
  • Funcionar com conteúdo AJAX e conteúdo carregado via jQuery
  • Mais de 70.000 instalações ativas, testado até ao WordPress 7.0

A versão Pro (licença vitalícia por menos de $15) adiciona filtros por tipo de publicação, URL e referenciador, importação/exportação de regras e a capacidade de substituir texto em páginas de administração.

Cenário típico: quer que a palavra «computador» se torne sempre um link para a sua loja de afiliados. Crie uma regra: Find = computer, Replace = <a href="https://shop.example.com">computer</a>. O plugin aplica-a a todos os artigos, páginas e comentários em tempo real.

Se não quiser instalar um plugin separado para uma dúzia de links, um trecho de código no functions.php do seu tema resolve o problema. Ele percorre o conteúdo de cada artigo, encontra palavras especificadas e envolve-as em links.

Ao trabalhar com o functions.php do seu tema, use um tema filho para que as suas alterações não sejam eliminadas durante as atualizações. E faça uma cópia de segurança do ficheiro antes de o editar.

Código PHP para inserção automática de links no WordPress

Adicione este código ao functions.php:

1function techblog_auto_link_words( $text ) {
2 $replace = array(
3 'wordpress' => '<a href="https://wordpress.org">WordPress</a>',
4 'php' => '<a href="https://www.php.net">PHP</a>',
5 );
6 $text = str_replace( array_keys( $replace ), $replace, $text );
7 return $text;
8}
9add_filter( 'the_content', 'techblog_auto_link_words' );
10add_filter( 'the_excerpt', 'techblog_auto_link_words' );

Como funciona: a função str_replace procura as chaves do array $replace no texto do artigo e substitui-as pelos valores (links). Os filtros the_content e the_excerpt aplicam a substituição ao texto completo do artigo e ao excerto, respetivamente.

Pode expandir o array $replace: adicione um novo par 'keyword' => '<a href="...">anchor</a>' e a regra começa a funcionar imediatamente.

Limitações: a substituição é sensível a maiúsculas e minúsculas, é acionada em correspondências exatas e não sabe como excluir palavras dentro de tags ou atributos. Se o texto já tiver um link com a mesma âncora, acabará com um link aninhado. Para cenários complexos, use o Real-Time Find and Replace descrito acima.

⁉️🤔 Perguntas frequentes

Posso localizar e substituir texto no WordPress sem plugins?

Sim, com uma consulta SQL direta à base de dados. O comando é algo como: UPDATE wp_posts SET post_content = REPLACE(post_content, 'old', 'new'). Mas este método não lida com dados serializados, requer acesso ao phpMyAdmin ou WP-CLI e não oferece pré-visualização. Um erro na consulta pode corromper a base de dados. O Better Search Replace faz o mesmo, mas de forma mais segura.

O que devo fazer se o site avariar após uma substituição?

Primeiro, não entre em pânico. Se ativou o Dry Run antes da substituição, sabe exatamente quais as tabelas afetadas. Se não, restaure a base de dados a partir de uma cópia de segurança (fez uma cópia de segurança antes da operação, certo?). O Better Search Replace não cria as suas próprias cópias de segurança na versão gratuita, pelo que uma cópia de segurança é fundamental.

O Real-Time Find and Replace torna o site mais lento?

Com um número razoável de regras (até 50), não. O plugin faz a substituição antes da saída da página, no lado do servidor, sem consultas adicionais à base de dados. Se usar cache, o impacto é ainda menor. Podem surgir problemas apenas com regras regex complexas que contenham erros de sintaxe.

Qual é a diferença entre o Real-Time Find and Replace e o Better Search Replace?

O Better Search Replace modifica os dados na base de dados: as alterações são permanentes. O Real-Time Find and Replace troca o texto no momento da renderização: a base de dados permanece intacta. O primeiro é para correções pontuais (gralhas, mudanças de domínio). O segundo é para regras permanentes (censura, inserções de anúncios, links automáticos). Não são concorrentes, mas ferramentas para tarefas diferentes.

Que método devo escolher para a substituição de domínio ao migrar um site?

Apenas o Better Search Replace. A substituição de domínio significa editar milhares de URLs na base de dados (em conteúdo, campos meta, configurações). O Real-Time Find and Replace não funcionará: não altera fisicamente os dados, e uma mudança de domínio requer a escrita efetiva na base de dados. Além disso, o Better Search Replace lida corretamente com arrays serializados, onde o comprimento da string é codificado juntamente com o valor.

O que usar para a sua tarefa

A tarefa determina a ferramenta. Não existe um «localizar e substituir» universal no WordPress, mas há uma solução pronta para cada cenário:

  • Precisa de corrigir algumas frases num rascunho: Advanced Editor Tools, o botão Localizar e Substituir no editor
  • Uma gralha espalhada por cem artigos: Better Search Replace, uma consulta à base de dados com pré-visualização
  • Quer que o logótipo de um cliente seja automaticamente envolvido num link para o site do cliente em todo o conteúdo: Real-Time Find and Replace, uma regra em tempo real
  • Precisa de adicionar links a uma dúzia de palavras-chave sem instalar plugins: Trecho PHP no functions.php, 10 linhas de código

Antes de qualquer substituição: cópia de segurança. Antes de substituir na base de dados: Dry Run. Estes dois hábitos poupam dias de recuperação.