Transformei o tema deste site num tema filho do Hello Elementor e, do nada, os posts do blog pararam de aparecer. Não veio erro, não veio aviso: a página respondia 200 OK e o corpo chegava completamente vazio. Depois de descartar cache, plugin e permissão de arquivo, a causa era um index.php que eu tinha criado só pra "preencher" o tema filho — prática comum, copiada de outro projeto.
O sintoma
É o tipo de bug chato: nenhuma mensagem de erro pra procurar no Google, porque tecnicamente nada deu errado. Nas ferramentas de rede do navegador, o status vinha 200 — pro servidor, a requisição tinha dado certo. O log de erro do PHP estava limpo, sem nada pra investigar ali. O jeito mais rápido de confirmar que o problema é esse mesmo — e não CSS quebrado, JS travando ou algo visual — é medir quantos bytes a página realmente devolve:
Numa página normal do blog, esse número passa de 30 mil bytes. Voltar zero (ou perto disso) é sinal de que o WordPress processou a requisição, mas não montou conteúdo nenhum pra devolver.
200 OK não é garantia de página certa. Sempre meça o tamanho do corpo antes de sair procurando bug em outro lugar — plugin, cache, CSS. Economiza hora de investigação errada.
Por que aconteceu
O WordPress decide qual arquivo vai renderizar a página seguindo a hierarquia de templates — e quando o site é um tema filho, ele procura primeiro dentro do tema filho. Se o filho tem um index.php, é esse arquivo que roda. Não importa o que exista no index.php do tema pai: ele nunca é chamado.
Se você nunca mexeu com tema filho: ele existe pra você customizar um tema sem perder atualização — herda tudo do pai e só sobrescreve o que precisa. O problema aparece quando você sobrescreve por hábito, sem precisar.
No caso do Hello Elementor (o tema pai), é o index.php dele quem chama elementor_theme_do_location('single') — a função que entrega o conteúdo renderizado pelo Theme Builder do Elementor. O meu index.php do tema filho era um arquivo genérico, copiado de outro projeto só pra o tema não ficar sem template nenhum. Ele nunca chamava essa função. Resultado: o WordPress carregava a página inteira e processava tudo certinho — por isso o 200 — mas o HTML final saía sem conteúdo, porque o arquivo que estava rodando de fato não sabia pedir esse conteúdo.
Como diagnosticar
Com o sintoma confirmado, o resto é achar qual arquivo está sendo carregado de verdade:
A correção
A correção, nesse caso, é apagar o arquivo — não editar. Sem index.php no tema filho, o WordPress cai automaticamente pro index.php do tema pai. É assim que herança de tema funciona: arquivo ausente no filho = usa o do pai, silenciosamente, sem precisar configurar nada.
Depois de apagar, rodei o mesmo curl -s URL | wc -c de novo. O tamanho voltou ao normal e a página do blog apareceu inteira.
A regra para não cair de novo
A regra que eu devia ter seguido desde o começo: tema filho só ganha um arquivo de template quando tem algo diferente pra fazer ali. Se o index.php do filho não muda nada em relação ao do pai, o arquivo não deveria existir.
A regra vale pra qualquer template de renderização — index.php, page.php, single.php, archive.php e por aí vai. Só crie o arquivo se for mudar algo de verdade; caso contrário, deixe o WordPress usar o do pai.