Depuração do WordPress: o guia essencial
Publicados: 2021-02-11Independentemente do nível de desenvolvedor WordPress que você esteja, há um problema que você enfrentará constantemente: bugs. Mesmo os desenvolvedores mais experientes não podem codificar consistentemente de uma maneira que não produza bugs. Na verdade, depurar o WordPress pode ajudá-lo a aprender ainda mais sobre a plataforma!
Se você tem experiência anterior em programação, é provável que tenha ocorrido erros durante a compilação ou tempo de execução. A menos que você tenha jogado a toalha e descartado o projeto, é provável que você tenha passado algum tempo executando o código e rastreando o problema. A dinâmica com o WordPress é a mesma.
Ao contrário de quando você programa em uma linguagem de programação comum, os erros do WordPress não são simplesmente impressos na página. Isso ocorre porque os logs de depuração geralmente contêm informações confidenciais, como as credenciais para bancos de dados. Em vez disso, o WordPress irá colocar esses logs em arquivos em seu servidor não acessíveis ao público.
Felizmente, ao contrário dos computadores que pesavam trinta toneladas desenvolvidos pelo Exército dos EUA, você não terá que remover literalmente insetos mortos de sua máquina para fazer isso! Agora que temos algum contexto, vamos dar uma olhada mais técnica no que se passa no processo de depuração do WordPress.
Depuração do WordPress explicada
Como você provavelmente sabe, o WordPress é desenvolvido em PHP. Isso significa que o guia oficial do WordPress sobre depuração, bem como o guia oficial de depuração do PHP, serão recursos excelentes para ajudá-lo ao longo do caminho.
Para depurar, o WordPress requer que você tenha uma variável PHP global definida. Veremos exatamente como fazer isso na próxima seção.
É importante distinguir como o processo de depuração do PHP é diferente do processo de depuração do WordPress. Com o vanilla PHP, apenas dois tipos de erros são mostrados por padrão. Um é um “erro fatal”, o que significa que é tão grave que a página nem consegue carregar. A outra é simplesmente mostrar ao usuário uma página em branco se houver um “erro fatal sensível”. Em outras palavras, o PHP sabe que imprimir a mensagem de erro completa pode representar um risco de segurança. Essas configurações podem ser facilmente modificadas no próprio PHP.
O WordPress, por outro lado, é um pouco mais prolixo quando se trata de depuração. Se você simplesmente habilitar a depuração do WordPress e não personalizá-la, todos os níveis de erro, aviso e até itens informativos para desenvolvedores serão exibidos. Isso significa que tudo, desde erros fatais a uma mensagem técnica sobre como você deve otimizar uma seção de JavaScript, será mostrado. Embora seja extremamente útil para desenvolvedores, provavelmente não é o melhor conteúdo para mostrar aos usuários.
Outro recurso exclusivo é que você será notificado sobre funções PHP específicas do WordPress que se tornaram obsoletas. Funções que se tornaram obsoletas são aquelas que ainda podem funcionar agora, mas o suporte será removido para elas no futuro. Normalmente, isso também significa que existe uma maneira melhor e mais rápida de realizar o mesmo processo.
Sabemos que você provavelmente não está animado com a depuração do WordPress, mas é fundamental se você deseja manter um blog ou site funcional. Antes de começar a editar arquivos, no entanto, certifique-se de usar um plug-in de backup WordPress confiável primeiro. Dessa forma, se você acidentalmente tornar seu site inoperante, poderá restaurar tudo em apenas alguns cliques!
Agora, vamos dar uma olhada em como podemos começar!
Como faço para habilitar a depuração no WordPress?
Para iniciar o processo de depuração do WordPress, precisaremos de algumas linhas de PHP.
Abra seu editor de texto favorito (contanto que seu editor de texto favorito não seja o Bloco de notas do Windows!). Se você precisar pegar um, o Notepad ++ é um editor de texto de código aberto comumente usado que oferece suporte a quase todas as linguagens de programação.
Em seguida, baixe uma cópia do seu arquivo wp-config.php. Não edite o arquivo original! Simplesmente faremos o upload da versão modificada assim que terminarmos.
Depois de abrir wp-config.php em seu editor de texto, você precisará adicionar a seguinte linha de código. Primeiro, pesquise-o para garantir que você ainda não o tenha; O PHP fica muito infeliz se você definir a mesma variável duas vezes!
define( 'WP_DEBUG', true );
Tudo o que essa linha de código faz é definir aquela variável global do PHP chamada WP_DEBUG para o valor booleano true.
Da mesma forma, se você quiser desativar o recurso de depuração do WordPress, basta inserir a linha de código oposta:
define( 'WP_DEBUG', false );
Isso ativa a depuração, mas não é muito útil se não soubermos como encontrar as informações de saída!
Onde está o registro de depuração do WordPress?
Tecnicamente, existem duas respostas para essa pergunta, e a resposta exata depende da sua escolha.
Como dissemos, uma maneira é simplesmente inserir define ('WP_DEBUG', true) ;. Isso usa as configurações de log de depuração padrão do WordPress, que cria automaticamente um arquivo se ele não existir (ou anexa a ele se existir) no local wp-content / debug.log.
No entanto, existem vários motivos pelos quais você pode desejá-lo em um local diferente. Por exemplo, você pode desejar tê-lo em um local onde uma ferramenta de depuração de terceiros possa acessá-lo. Para personalizar onde o registro de depuração é colocado, você pode habilitar a depuração desta forma:
define( 'WP_DEBUG_LOG', '/best-wp-dev/errors.log' );
Log de depuração do WordPress explicado
O nível de detalhe das informações em seu log de depuração do WordPress depende de como você o configura. Se você simplesmente ativá-lo sem nenhuma modificação adicional, irá registrar praticamente todos os eventos que causam um erro, usam uma função obsoleta ou não são ideais.
Como o WordPress é construído com base em PHP, seu log mostrará todos os erros e avisos de PHP lançados. Ele também conterá a data, hora e endereço IP associados a cada evento. Infelizmente, você também verá a saída (muito) detalhada do PHP sobre muitas coisas, como estilo de código que ele não gosta, validação de dados que acha que deve ser reforçada e muito mais.
Especialmente para as pessoas que estão começando a depurar o WordPress, olhar o arquivo de log pode ser bastante complicado. No entanto, você deve se lembrar que apenas alguns itens são necessários.
Depuração vs. Registro
Embora tenham como objetivo atingir o mesmo objetivo, é importante que você entenda a diferença entre depuração e registro. Em outras palavras, a linha define ('WP_DEBUG', true); faz algo completamente diferente da linha define ('WP_DEBUG_LOG', true) ;.
Em nenhum caso você deve usar define ('WP_DEBUG', true); em um site acessível ao público. Este comando, quando usado sozinho, irá simplesmente imprimir mensagens de depuração. Isso não registra nada e produzirá informações que podem ser usadas para roubar dados do (s) seu (s) site (s). Garantir que isso não seja ativado, em conjunto com um plug-in de segurança WordPress sólido, impedirá a grande maioria das tentativas de ataques cibernéticos.
Depurando o WordPress sem arriscar a segurança
Obviamente, você precisará depurar seu site regularmente. No entanto, você provavelmente não deseja adicionar e remover constantemente linhas de código de seu arquivo wp-config.php.
Pensando no processo, primeiro precisamos habilitar a depuração em geral. Em seguida, precisaremos nos certificar de que registramos os erros para que seja possível corrigi-los. No entanto, não queremos mostrar esses erros ao público em geral. Lembre-se de que precisamos suprimir a exibição de erros padrão de PHP e erros específicos do WordPress.
Amostra de código de depuração seguro do WordPress
Usando o processo que descrevemos acima, aqui estão quatro linhas de código que podem ajudá-lo a começar a depurar seu site com segurança!
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
As primeiras três linhas acima são simplesmente definindo variáveis PHP globais às quais o WordPress presta atenção. Estamos tornando possível a depuração, configurando nossa funcionalidade de registro e, em seguida, desativando erros específicos do WordPress.
Provavelmente, a quarta linha parece ter saído do campo esquerdo! Esta linha é para tratar de erros de PHP que não são tratados pelo WordPress. É a última base a ser coberta para garantir que usuários mal-intencionados não tenham acesso a informações confidenciais do site.
Como faço para corrigir um erro de depuração do WordPress?
Freqüentemente, os desenvolvedores usam essas quatro linhas de código que examinamos. Eles experimentarão um erro, como uma falha de conexão do banco de dados, mas não haverá nada no log de depuração sobre isso. Isso ocorre porque o WordPress tem diferentes variáveis globais de PHP para diferentes métodos de depuração.
Vejamos alguns cenários em que você precisará adicionar mais algumas linhas ao seu arquivo wp-config.php para depurar o WordPress corretamente.

Depurando JavaScript WordPress
Se você tem um site WordPress, há uma grande chance de ele usar JavaScript. Para desenvolvedores mais recentes, esta é essencialmente a linguagem que capacita os elementos interativos dos sites. JavaScript é conhecido por ser muito tedioso para depurar. Isso ocorre porque os sites modernos costumam usar estruturas em cima do JavaScript, complicando ainda mais os avisos e mensagens de erro.
Infelizmente, isso não é a única coisa que dificulta a depuração do JavaScript do WordPress. Existem duas formas básicas de JavaScript: assíncrono ou “AJAX” e JavaScript regular . JavaScript regular opera de maneira linear; ele não executará uma função até a execução da outra antes de sua conclusão. Embora isso possa ter funcionado nos primeiros dias da web, não serve para aplicativos da web.
AJAX, por outro lado, opera em segundo plano em seu site WordPress. Ele permite que você execute funções JavaScript e aguarde sua saída, mas não impede que outras funções sejam executadas. Freqüentemente, é necessário evitar que os sites travem.
O motivo pelo qual o WordPress nos faz usar outra variável global PHP para dizer que queremos depurar scripts é porque esse método de depuração gera uma grande quantidade de dados.O motivo pelo qual o WordPress nos faz usar outra variável global PHP para dizer que queremos depurar scripts é porque esse método de depuração gera uma grande quantidade de dados. Também é porque JavaScript e CSS são executados no lado do cliente, enquanto o PHP é executado no lado do servidor. Para gerar todos os erros que o WordPress encontra devido ao JavaScript e CSS, basta adicionar esta linha:
define( 'SCRIPT_DEBUG', true);
Isso mostrará erros de JavaScript e CSS (folha de estilo). Também pode ajudar nas operações AJAX mais complexas.
Corrigindo problemas de dados
Quase todo site obtém informações de um banco de dados. O WordPress possui vários bancos de dados; alguns sites armazenam bancos de dados em servidores separados e outros no mesmo servidor. Uma vez que todas as configurações são diferentes, sempre há uma chance de algo dar errado em sua conexão de banco de dados.
Se você receber uma mensagem de erro dizendo que o WordPress não pôde se conectar a um banco de dados, ou você notar que os dados não estão sendo extraídos corretamente, você provavelmente precisará depurar. Simplesmente usando as variáveis de depuração padrão do WordPress, você provavelmente notaria que nada seria registrado quando encontrasse um erro relacionado ao banco de dados.
Isso ocorre porque o WordPress separa os erros relacionados ao banco de dados de todos os outros erros. Mensagens de erro de banco de dados geralmente contêm informações confidenciais, e os desenvolvedores do WordPress queriam ter certeza de que você não divulgaria acidentalmente informações privadas para o público!
Para começar a depurar problemas de banco de dados do WordPress, você precisará adicionar outra linha ao seu arquivo wp-config.php:
define( 'SAVEQUERIES', true );
Mergulhando na depuração de banco de dados
Ao contrário de nossas outras variáveis de depuração globais do WordPress, precisamos prestar atenção especial a esta. “SAVEQUERIES” diz ao WordPress que queremos ver cada consulta executada e seus resultados retornados. Isso prejudicará substancialmente o desempenho em todo o site! Tenha cuidado para não executar isso em seu servidor nos horários de pico e desligue-o assim que não precisar dele.
Ele também armazena sua saída de maneira um pouco diferente. O WordPress usa um array PHP de strings que você precisará acessar para ver as informações de depuração do banco de dados. Ele está localizado na variável global PHP chamada $ wpdb e na matriz de membros chamada consultas. Você pode acessá-lo imprimindo o conteúdo de $ wpdb-> queries
Depurando Plugins WordPress
Uma vantagem principal do WordPress sobre outras plataformas é sua rica biblioteca de plug-ins que podem fazer quase tudo. Você pode estar lendo isso e já estar com dor de cabeça pensando sobre a logística de precisar mudar constantemente o conteúdo do arquivo. Felizmente, alguns plug-ins podem nos ajudar a depurar o WordPress! Existem dois particularmente populares que o tornam uma brisa.
Depuração WP
Localizado no site do WordPress, este é um dos plug-ins de depuração mais conhecidos do WordPress. Basicamente, ele automatiza os processos sobre os quais já falamos. Com alguns cliques em seu painel, você pode ativar e desativar todas essas variáveis globais de PHP em seu site.
Ao instalar este plug-in, você também instala uma série de plug-ins dos quais ele depende. Como um todo, eles permitem que você registre e o ajudem a interpretar os erros que encontrar.
Essa ferramenta é ótima para habilitar o processo de depuração, mas para depurar seus próprios plug-ins e examinar facilmente as informações de depuração do WordPress relacionadas ao banco de dados, você também precisará de outro plug-in.
A barra de depuração
Como o próprio nome sugere, a Barra de Depuração é simplesmente uma barra no painel de administração do seu site WordPress. Ele pode ser usado em conjunto com a ferramenta WP Debugging.
Possui ferramentas para desenvolvedores mais avançados, permitindo-lhes visualizar o cache, as consultas que foram geradas, os resultados das consultas e informações mais avançadas. Como mencionamos, o WordPress coloca todas as informações de depuração do banco de dados em uma variável global do PHP.
Para realmente visualizar essas informações, você precisa iterar por meio desse array em um arquivo PHP personalizado. Este plugin oferece uma alternativa fácil. Ele imprime todas essas informações em um formato bastante fácil de ler e entender. Ele ainda dá algumas dicas sobre como otimizar suas chamadas de banco de dados!
Depurando Temas WordPress
A depuração de temas do WordPress normalmente envolve a ativação da variável global PHP em relação aos scripts. Isso ocorre porque os temas utilizam JavaScript e CSS do lado do cliente.
Primeiro, certifique-se de que é um tema de sua autoria. Se for um tema de terceiros que está apresentando problemas, você precisará entrar em contato com o autor desse tema. Seria muito bom tentar encontrar uma agulha em um palheiro para fazer você mesmo!
Se for o seu próprio tema, certifique-se de seguir as etapas que discutimos para habilitar a depuração. Execute qualquer ação que faça com que você perceba o bug. Você também pode ativar o console do desenvolvedor em seu navegador pressionando F12. Isso mostra mais mensagens de erro no nível do cliente que podem ajudar no processo.
Depois de realizar ações em seu tema que levem a erros, consulte o log. Deve haver informações detalhadas sobre o que está causando os erros. Provavelmente, bastará alguns ajustes de JavaScript e / ou CSS para que tudo volte ao normal!
Erro crítico de depuração do WordPress
Se um plug-in, tema ou outro conteúdo personalizado gerar um erro fazendo com que seu site WordPress falhe, seu site deve enviar a você um e-mail sobre a falha. Especialmente para webmasters mais novos, isso pode ser angustiante.
Não há necessidade de se preocupar, pois você pode simplesmente seguir esta cadeia de etapas para resolver o problema em muito pouco tempo!
- Certifique-se de ter ativado o modo de depuração do WordPress.
- Acesse seu log de erros. Deve conter informações detalhadas sobre o erro fatal. Em caso afirmativo, pesquise o código de erro exato online.
- Verifique sua versão do PHP. Se não for o que o WordPress exige atualmente, basta atualizar a versão do PHP que seu servidor usa para corrigir o problema.
- Se você ainda não tiver sorte, vá até seus plug-ins. Desligue todos eles. Se o site funcionar, isso significa que um plug-in causou o problema. Examine-os um por um até encontrar o plug-in com problema. Entre em contato com quem o escreveu e peça que o corrijam.
- Se você ainda não encontrou o problema, pode ser um problema relacionado ao tema. Tente reverter seu tema atual para o tema padrão do WordPress. Se o seu site funcionar, você precisará alterar temporariamente os temas até que o autor resolva o problema.
- Sem dados? Coloque seu erro no fórum de desenvolvedores do WordPress. Existem muitos usuários que ficarão felizes em ajudá-lo.
Empacotando
A depuração do WordPress pode ajudá-lo a resolver uma série de problemas que encontrar. Ele pode informar quais plug-ins têm problemas ou quais problemas você pode ter com um tema. Como um desenvolvedor WordPress, a depuração ajuda você não apenas a ser um desenvolvedor melhor, mas também a produzir código limpo e de qualidade.
AJ traz mais de duas décadas de experiência trabalhando e desenvolvendo sites de membros com uma ampla gama de clientes.
