4 dicas para corrigir um site WordPress

Publicados: 2020-09-03

Alguns dias atrás, um amigo me ligou e me disse que havia recebido a tarefa de manter um projeto antigo do WordPress. Aparentemente, o site não era atualizado há mais de três anos e havia problemas por toda parte. O coitado estava totalmente travado, pois não conseguia atualizar nada lá: plugins, tema, conteúdo… nada funcionava. Todas as ações (além de navegar no próprio site) resultaram no travamento do WordPress e no retorno de um erro.

Quando temos um WordPress inutilizável que gera erros continuamente e não pode ser atualizado, a primeira coisa que devemos fazer é identificar por que está se comportando da maneira que está. Ou seja, precisamos encontrar o culpado. Normalmente, quaisquer problemas que você possa encontrar em um site WordPress ocorrem devido ao seu tema ou a um (ou mais) de seus plugins.

Considerando isso, o procedimento usual para corrigir um site WordPress é identificar o plugin incorreto, eliminá-lo da equação, atualizar tudo e, finalmente, ver se podemos reinstalar e atualizar o plugin incorreto em nosso site ou devemos procurar um substituição. Hoje vou contar quatro truques simples para descobrir por que um site falha e, assim, poder corrigi-lo.

Usando o log de erros do nosso servidor

Assumindo a hipótese de que é um plugin que está causando os erros que temos em nosso site, a primeira coisa que temos que fazer é validar essa hipótese. Existem diferentes fórmulas para isso. Pessoalmente, gosto de começar olhando o log de erros do meu servidor, que tem sua própria opção no cPanel:

Erro ao logar no cPanel
Erro ao logar no cPanel.

Esperamos que o log de erros não contenha apenas um rastro dos erros ocorridos em nosso site, mas também informações sobre “onde” ocorreram e, portanto, quem foi o culpado. Por exemplo, na semana passada, encontrei o seguinte problema no log de erros do meu ambiente de desenvolvimento:

 appserver_1 | [Mon Aug 24 09:18:20.977541 2020] [php7:notice] [pid 1107] [client 172.20.0.2:34396] PHP Notice: register_rest_route was called <strong>incorrectly</strong>. The REST API route definition for <code>yoast/v1/get_head</code> is missing the required <code>permission_callback</code> argument. For REST API routes that are intended to be public, use <code>__return_true</code> as the permission callback. Please see <a href="https://wordpress.org/support/article/debugging-in-wordpress/">Debugg ing in WordPress</a> for more information. (This message was added in version 5.5.0.) in /app/.lando/wordpress/wp-includes/functions.php on line 5225, referer: http://nab5.lndo.site/wp-admin/edit.php

O log está relatando um aviso do PHP que ocorreu em um dos próprios arquivos do WordPress ( wp-includes/functions.php ), que não nos diz nada sobre “um plugin ser o culpado”. Felizmente, se você ler a mensagem inteira, verá que ela descreve o que falhou (ou seja, uma chamada para a função register_rest_route ) e nos dá uma dica do que pode estar errado: Yoast (veja como ele menciona “ yoast/v1/get_head “ ?).

Os logs de erros são a maneira mais fácil de descobrir rapidamente quando/se algo está errado e, se estiver, qual é a razão por trás de um erro. Neste exemplo em particular, descobri que tive um problema com o Yoast e, bem, tudo o que tive que fazer foi atualizar o plugin para sua versão mais recente

Desativando plugins do painel do WordPress

Infelizmente, nem sempre é possível acessar o log de erros de um site para descobrir quando as coisas deram errado. Ou, se você tiver acesso ao log, ele pode estar incompleto. Nesses casos, precisamos de fórmulas alternativas para validar (ou refutar) nossa hipótese inicial.

Supondo que nosso site esteja falhando devido a um plug-in defeituoso, a coisa mais fácil a fazer é desativar todos os plug-ins e verificar se o erro persiste. Se isso não acontecer, o culpado foi um plugin; se persistir, o problema está em outro lugar.

Para fazer isso, vá para o Painel do WordPress » Plugins , selecione todos os seus plugins ativos e desative -os em massa:

Desative plugins usando ações em massa
Como desativar plugins usando ações em massa.

e verifique se o erro ainda ocorre. Se isso não acontecer, você sabe que o problema foi causado por um dos plugins que você acabou de desativar. Agora é hora de descobrir qual precisamente.

Para identificar o plugin defeituoso, você pode ativá-los um por um e verificar quando o erro aparece novamente. Ou, se quiser ir mais rápido, você pode aplicar as seguintes etapas:

  1. Ative metade dos seus plugins.
    1. Se o erro reaparecer, o culpado está na metade que você acabou de ativar, para que você possa ativar a outra metade com segurança.
    2. Se o erro não aparecer, o culpado está na outra metade.
  2. Depois de saber em qual “grupo” está o plugin defeituoso, você só precisa se concentrar nele e repetir o processo. Ative metade desse grupo e desative a outra metade (ou seja, agora você estaria verificando um quarto do total) e veja se seu site funciona corretamente.
  3. Repita o processo até encontrar o culpado.

Depois de saber qual plug-in está falhando, você decide como corrigir o problema. Você pode ter que entrar em contato com o desenvolvedor, tentar consertar o plugin você mesmo ou até mesmo considerar substituí-lo por uma alternativa. Mas, pelo menos, agora você sabe o que precisa fazer para se livrar do problema.

Faça backup de sua lista de plugins ativos

Lembra do meu amigo desde o início? Quando estávamos investigando o site dele, seguimos todos os passos anteriores e desativamos todos os plugins do site dele…

…o que resultou em uma tela branca da morte!

Gif mostrando um homem surpreso

Aparentemente, a web estava cheia de plugins personalizados e ajustes de tema com muitas dependências cruzadas. Ao desativar os plugins, algumas das funções que o tema dependia não estavam mais disponíveis, o que desencadeou um erro fatal. Esta é claramente uma má prática: um tema não pode depender de um plugin estar ativo. Se precisar de alguns dos recursos fornecidos por um determinado plugin, ele deve implementar verificações de segurança para validar se estão disponíveis ou não.

De qualquer forma, o problema é que o site foi completamente encerrado e não conseguimos reativar os plugins usando o Dashboard. Então, qual é a solução aqui? Bem, para começar, você deve sempre ter um backup do seu site… mas neste caso em particular há uma solução mais fácil e rápida à mão.

Em seu banco de dados WordPress, há uma tabela chamada wp_options . Lá, você encontrará uma opção chamada active_plugins . Seu valor é um array com todos os plugins ativos. Então, antes de desativar os plugins usando a ação em massa que mencionei antes, basta salvar este valor em um arquivo de texto:

Plugins ativos no banco de dados
Plugins ativos no banco de dados.

Dessa forma, se “desativar todos os plugins” terminar em um WSOD improvável (mas não impossível), você pode reativar todos os plugins restaurando a opção active_plugins no banco de dados.

Como desativar plugins via FTP

Se você sabe que seu problema está sendo gerado por um plugin específico, mas não tem como desativá-lo no painel do WordPress, você pode fazer isso com segurança via FTP.

Como você já sabe, os plugins nada mais são do que um conjunto de arquivos. Quando você instala um novo plugin em seu site, seu código acaba na pasta wp-content/plugins do WordPress. Aproveitando esse conhecimento, podemos desativar o plugin “removendo-o” da referida pasta.

Acesse o cPanel do seu servidor e procure a opção FTP:

Opção FTP no cPanel
Opção FTP no cPanel.

Em seguida, usando o explorador de arquivos FTP, encontre a pasta wp-content/plugins e localize seu plugin:

Navegador de arquivos CPanel
Navegador de arquivos CPanel.

Agora, tudo o que você precisa fazer é excluir o plug-in ou renomear sua pasta para que o WordPress não o encontre. Dessa forma, se você fizer login no seu site WordPress, o WordPress não verá mais o plug-in e não poderá carregar seu código defeituoso, resolvendo assim o problema que você teve.

Use um tema padrão

Finalmente, se a hipótese de que o problema foi causado por um de seus plugins não for verdadeira, o próximo passo é assumir que o culpado é o seu tema. Nesse caso, tudo o que você precisa fazer é instalar um tema padrão do WordPress (como Twenty Twenty) e ver se o problema desaparece ou não. Se ele desaparecer, você já sabe que há algo errado com seu tema original; se isso não acontecer, isso é algo que teremos que discutir em um post diferente.

Se, por qualquer motivo, você não tiver acesso ao painel do WordPress, poderá instalar um novo tema em seu site enviando-o via FTP ( wp-content/themes ) e alterar o tema ativo usando o banco de dados: basta modificar o template de opções e stylesheet de estilo em wp_options . Por exemplo, você pode querer definir ambas as opções para twentytwenty , supondo que esse seja o tema que você carregou.

Em suma

É improvável que um WordPress vanilla (sem plugins e sem um tema personalizado) falhe. Portanto, se você tiver problemas em seu site, o culpado provavelmente é um de seus plugins ou seu tema. No post de hoje vimos diferentes fórmulas para encontrar o culpado, tirá-lo do caminho e recuperar o site. Eu sinceramente espero que você não precise usar nenhum desses truques... mas se você precisar, espero que eles sejam úteis.

E o site do meu amigo? Bem, eu não sei—algumas pessoas dizem que ele mudou de carreira…

Imagem em destaque por Olia Nayda no Unsplash.