Como corrigir There has been a critical error (fatal)
O que é o fatal error no WordPress?
O fatal error no WordPress é um erro de PHP de nível E_ERROR que faz o interpretador parar na hora, sem terminar de montar a página. Diferente de um warning (que apenas alerta), o fatal error é irrecuperável dentro daquela requisição, então o WordPress mostra a tela “There has been a critical error on this website”. A mensagem real (“Uncaught Error”, “Call to undefined function”, “Allowed memory size exhausted”) fica no log de PHP, não na tela do visitante.
Como identificar
- O site mostra “There has been a critical error on this website” (ou, no admin, “…Please check your site admin email inbox for instructions.”).
- No debug.log aparece uma linha começando com “PHP Fatal error: Uncaught Error:” seguida do arquivo e da linha.
- Mensagens típicas como “Call to undefined function”, “Cannot redeclare” ou “Class not found” no log.
- O erro começa logo após atualizar o WordPress, um plugin, um tema ou a versão do PHP.
Antes de começar: Trabalhe sobre backup do wp-config.php e do functions.php antes de editar. Nunca deixe WP_DEBUG_DISPLAY como true em produção: ele expõe caminhos de arquivos e pistas de estrutura para visitantes mal-intencionados.
Como prevenir
- Atualize WordPress, plugins, temas e PHP em um ambiente de teste antes da produção
- Use um plugin de snippets em vez de colar código direto no functions.php
- Mantenha backup automático para reverter rápido quando uma atualização gerar fatal error
Causa
- Plugin chamando uma função removida ou incompatível com a versão atual do PHP (ex.: código PHP 5 rodando em PHP 8.x).
- Conflito entre dois plugins que declaram a mesma função ou classe (Cannot redeclare / Class not found).
- Erro de sintaxe introduzido em functions.php ao colar um snippet de código.
- Arquivo de plugin ou tema corrompido ou incompleto após upload ou atualização interrompida.
- Memória PHP esgotada durante a execução (Allowed memory size exhausted), que também gera fatal error.
Como resolver
- Ative o log de depuração: via FTP, edite o wp-config.php para gravar os erros em arquivo sem mostrá-los ao público:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); - Leia a linha do fatal error: abra wp-content/debug.log e procure a última linha "PHP Fatal error". Ela indica o arquivo e a linha exatos, normalmente dentro de um plugin (wp-content/plugins/...) ou do tema.
- Desative o componente culpado: se o log apontar um plugin, renomeie a pasta dele em wp-content/plugins via FTP. Se apontar o tema, troque para um tema padrão renomeando a pasta do tema ativo em wp-content/themes.
- Reverta a edição do functions.php: se o erro citar o functions.php do tema, abra o arquivo e remova o último snippet colado, ou restaure o backup. Um ponto-e-vírgula ou chave faltando já causa fatal error.
- Trate falta de memória, se for o caso: se a linha for 'Allowed memory size exhausted', aumente o limite no wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
LOG
[13-Jun-2026 14:22:05 UTC] PHP Fatal error: Uncaught Error: Call to undefined function wc_get_product() in /home/site/public_html/wp-content/plugins/meu-plugin/includes/produto.php:48
Stack trace:
#0 /home/site/public_html/wp-content/plugins/meu-plugin/meu-plugin.php(120): render_produto()
#1 {main}
thrown in /home/site/public_html/wp-content/plugins/meu-plugin/includes/produto.php on line 48
Perguntas frequentes
Onde aparece a mensagem real do fatal error?
No log de PHP, não na tela. Ative WP_DEBUG e WP_DEBUG_LOG no wp-config.php e leia o arquivo wp-content/debug.log: a linha "PHP Fatal error" traz o arquivo, a linha e a causa exata do problema.
Qual a diferença entre fatal error e erro crítico do WordPress?
São a mesma coisa vista de ângulos diferentes. O fatal error é o erro de PHP que interrompe o script; "erro crítico" é o nome amigável da tela que o WordPress mostra ao visitante quando esse fatal error acontece.
O fatal error surgiu depois de atualizar o PHP. O que houve?
Um plugin ou tema usa funções removidas nas versões novas do PHP. Verifique no log qual arquivo falha e atualize esse plugin/tema; se não houver versão compatível, volte temporariamente para a versão de PHP anterior no painel da hospedagem.
Posso corrigir um fatal error sem acesso ao painel?
Sim. Todo o diagnóstico e a correção são feitos por FTP: ativar o log no wp-config.php, ler o debug.log e desativar o plugin ou tema culpado renomeando a pasta dele. O painel volta assim que o componente quebrado é desligado.
"Cannot redeclare function" é fatal error de quê?
De conflito: dois plugins (ou um plugin e o tema) declaram uma função com o mesmo nome. O PHP não permite isso e aborta. Desative um dos dois componentes apontados no log para resolver.
Depois de corrigir, preciso desligar o WP_DEBUG?
Sim. Em produção, deixe WP_DEBUG e WP_DEBUG_DISPLAY como false para não expor caminhos de arquivos. Você pode manter WP_DEBUG_LOG ligado em silêncio se quiser continuar registrando erros sem mostrá-los.














