Melhor Prática: Verifique se a Função Existe ao Adicionar em um Tema do WordPress

Um de nossos leitores mais técnicos nos perguntou recentemente como verificar a existência de uma função PHP antes de integrar novo código a um site WordPress. Isso é importante para garantir que seu site funcione sem problemas e evite erros.

Uma das forças do WordPress é sua flexibilidade e a equipe do WPBeginner adiciona regularmente funções personalizadas para melhorar a funcionalidade do nosso site. Entendemos que código PHP personalizado pode falhar se chamar uma função que não existe mais ou ainda não foi definida.

Neste artigo, mostraremos como verificar facilmente se uma função existe antes de adicioná-la ao seu tema WordPress, permitindo que você evite erros potenciais em seu código.

Verificando se uma função existe no WordPress

Por que adicionar 'Se a função existir' ao seu código personalizado?

O WordPress é escrito principalmente na linguagem de programação PHP. PHP é uma linguagem de programação do lado do servidor que é executada nos servidores do seu provedor de hospedagem WordPress.

Como o código PHP precisa terminar de ser executado antes que a página seja carregada nos navegadores dos seus visitantes, existem certas limitações. Uma dessas limitações é que, se algo der errado, isso pode impedir que a página inteira seja carregada.

No WordPress, se uma função ausente impedir que o restante do código seja executado, ele para e exibe uma mensagem de erro crítico ou erro fatal.

Mensagem de erro crítico do WordPress

O que pode fazer uma função parar de funcionar repentinamente ou desaparecer?

É um erro comum do WordPress mais do que você imagina.

Por exemplo, digamos que um dos seus plugins do WordPress venha com uma função que você adicionou à área de cabeçalho ou rodapé do seu tema. Desativar o plugin fará com que a função desapareça e cause o erro crítico no seu site WordPress.

Dito isso, vamos ver como verificar facilmente se uma função existe antes de executá-la nos arquivos do seu tema WordPress.

Verificando se uma Função Existe no WordPress

Felizmente, a linguagem de programação PHP vem com um método integrado para verificar facilmente a existência de uma função antes de executá-la.

Digamos que você tenha uma função do WordPress que exibe a hora atual com informações de fuso horário. Aqui está um trecho de código de exemplo que você pode usar para tentar isso.

Você pode adicioná-lo diretamente ao arquivo functions.php do seu tema, mas neste tutorial, usaremos o plugin de trechos de código WPCode porque é a maneira mais segura e fácil de adicionar código personalizado no WordPress.

Primeiro, você precisa instalar e ativar o WPCode Free Plugin. Se precisar de ajuda para fazer isso, consulte nosso guia passo a passo para iniciantes sobre como instalar um plugin do WordPress.

Após a ativação, você precisa ir para Snippets de Código » + Adicionar Snippet no seu painel do WordPress. Uma vez lá, passe o mouse sobre a opção ‘Adicionar seu código personalizado (Novo Snippet)’ e clique no botão ‘Usar snippet’ que aparece.

Adicionando Código Personalizado no WPCode

Isso abrirá uma nova página onde você pode adicionar seu snippet personalizado. Digite um título como ‘Exibir hora atual com fuso horário’ e cole o snippet de código abaixo no painel de visualização de código.

//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}
Cole o trecho de código no WPCode

Depois disso, você precisa selecionar ‘Snippet PHP’ no menu suspenso Tipo de Código para garantir que o código seja executado corretamente.

Finalmente, você deve mudar o alternador Ativar para a posição Ligado e clicar no botão ‘Salvar Snippet’ para armazenar seu novo snippet de código.

Ative e salve o trecho de código

Para chamar esta função, você precisará adicionar o seguinte código em qualquer lugar do seu tema do WordPress onde você deseja exibir a hora atual.

<?php wpb_show_timezone(); ?>

É assim que ficou em nosso site de teste.

Função é executada normalmente

Agora, o que aconteceria se o código responsável por executar esta função desaparecesse?

A chamada para a função quebrará seu site assim.

Erro crítico no WordPress

Vamos adicionar uma verificação para garantir que este código só seja executado quando a função existir.

Novamente, você precisará adicionar o código diretamente ao arquivo functions.php do seu tema ou usar um plugin de trechos de código como o WPCode (recomendado):

<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>

Neste código, estamos usando a função function_exists(). Esta função verifica se uma função existe e retorna Verdadeiro ou Falso.

Em seguida, adicionamos uma condição if-else para tomar a ação apropriada dependendo da disponibilidade da função.

Agora, quando a função não estiver mais disponível, o código simplesmente a ignorará, e o WordPress poderá carregar o restante do seu site normalmente.

Função ausente ignorada

Esperamos que este artigo tenha ajudado você a aprender como verificar se uma função existe no WordPress. Você também pode querer ver nosso guia sobre como exibir código facilmente em seu site WordPress ou nossa seleção especializada dos melhores editores de código para Mac e Windows para editar arquivos WordPress.

Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

7 CommentsLeave a Reply

  1. Me salvou de uma dor de cabeça! Não posso dizer quantas vezes adicionei código apenas para ter meu tema travado porque uma função não estava lá. Super fácil de implementar e mantém meu código limpo.

    Obrigado pela explicação clara

  2. Gostaria de perguntar, se o PHP me der um erro sobre uma função PHP inexistente, essa função pode ser habilitada, ou isso tem que ser feito pelo administrador do servidor? E é possível que a função dependa da versão do PHP? Ou seja, que uma determinada função esteja disponível em uma versão do PHP, mas não em outra?

    • Nesse caso, a função não existe, então você precisaria verificar qual é a função específica para ajudar a encontrar o que está causando o erro. Depois disso, você pode verificar com o suporte o que está causando o erro ou remover o que está causando o erro.

      Admin

  3. Boa ideia, Kovshenin. Sei exatamente o que você quer dizer porque eu estava usando uma função personalizada com o contact form 7 (para recuperar o endereço IP em cada formulário) e toda vez que o plugin era atualizado, o tema quebrava.

    Obrigado pela dica

    Joana Pereira

    • já passei por isso com atualizações de plugins quebrando temas também! Usar function_exists() é definitivamente um divisor de águas para evitar essas dores de cabeça

  4. Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

Deixe uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.