Usando Claude Code para criar um plugin WordPress para tradução em 2 dias
Queríamos publicar versões em português dos posts em inglês do blog de engenharia da Codeminer42.
Fiz uma pesquisa e encontre o Polylang que parecia uma alternativa promissora. Instalei o Polylang e me arrependi logo em seguida. Todos os nossos links estavam retornando erro 404.
Depois de umas pesquisas vi que essa era o comportamento "normal". Quando acontecia, você tinha que ir na configuração de permalinks e só clicar em salvar, sem ter que fazer nada.
Bom tentei, mais algumas vezes fazer funcionar no nosso ambiente, mas não consegui. E piorou ainda mais quando vi que a integração com IA ficava atrás de um paywall. Mesmo que eu configurasse o plugin correntamente, não tínhamos plano de ter uma versão pro só pra traduzir com IA.
Foi aí que pensei: por que não implementar o nosso próprio plugin usando Claude Code?
Resultado
Em dois dias de desenvolvimento:
- 14 classes e 1.581 linhas de PHP
- Zero tabelas customizadas no banco de dados
- 156 testes PHPUnit
- 323 assertions
- ~80% de cobertura de testes na parte core
Tudo funcionando com WordPress primitivos: taxonomia cm_language para marcar posts com seu idioma, post meta _cm_translation_group com UUID compartilhado para ligar traduções, e um padrão provider para backends de tradução com IA.
Dia 1: Arquitetura
Fiz brainstorm com o Claude Code para encontrar uma solução que tivesse menos fricção. Não queria criar mais um plugin que quebra as coisas quando é ativado. Também queria que fosse seguro e simples de desinstalar.
Orientei ao Claude Code que fizesse TDD e ele seguiu bem o processo. Os testes cobrem:
- Configuração de idioma com suporte a idioma padrão
- Linking de traduções (bidirecional, baseado em UUID)
- Todos os três provedores de tradução com HTTP mocking
- Reescrita de URL com prefixos de idioma
- Geração de tags hreflang
- REST API com filtragem por idioma

Dia 2: Testes reais e bugs
No segundo dia de trabalho no plugin, pedi ao Claude Code que configurasse uma instalação do Wordpress com o mesmo tema que usamos em produção e, usando o Chrome DevTools MCP, pedi que fizesse a instalação e configuração do plugin. Tudo funcionou perfeitamente.
Em produção é que certas coisas deram errado. Primeiro que na instalação de produção, não é editor Gutenberg, mas sim o clássico. Isso foi mais uma coisas que tive de ajustar no plugin, fazer ele funcionar no editor clássico.
Tive bugs também na exibição dos posts. Meu plugin acabou alterando a query da home page.
Houve mais algumas idas e vindas que com a junção Claude Code + Chrome DevTools MCP eu pude validar e encontrar com mais rapidez.
O Fluxo de tradução
No fim de tudo, funcionou. E o fluxo está como mostrado na imagem abaixo.

- Autor clica "Translate with AI" em um post em inglês
- Plugin adquire um lock (baseado em transient, 5 min TTL) para evitar traduções duplicadas
- Plugin envia título e conteúdo separadamente para o provedor de IA configurado
- Provedor retorna as traduções
- Plugin cria um novo draft post com o conteúdo traduzido
- Posts são linkados bidireccionalmente via UUID
IMPORTANTE: O prompt importa mais do que o provedor que você escolhe. Enviamos regras de formatação (preserve Markdown, não converta blocos de código em parágrafos, mantenha backticks) e regras de linguagem (não infle, não use linguagem promocional, não force a regra dos três).
AI tende a derivar. "Isto está quebrado" vira "isto representa um desafio significativo." Essas regras mantêm a tradução honesta.
O post completo, traduzido para o português já utilizando o plugin, com todos os detalhes está aqui: https://blog.codeminer42.com/pt-br/construindo-um-plugin-wordpress-multilingue-com-claude-code/.
E se quiser ver como o Chrome DevTools pode te ajudar sugiro que veja esse follow up que mostra como foi configurar o plugin de ponta a ponta sem tocar no browser eu mesmo: https://blog.codeminer42.com/pt-br/configurei-um-plugin-do-wordpress-sem-tocar-no-navegador/