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.
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' );
[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














