Um de nossos leitores mais técnicos nos perguntou recentemente como verificar a existência de uma função PHP antes de integrar um novo código em um site WordPress. Isso é importante para garantir que seu site funcione sem problemas e evite erros.
Um dos pontos fortes do WordPress é sua flexibilidade e a equipe do WPBeginner adiciona regularmente funções personalizadas para melhorar a funcionalidade do nosso site. Entendemos que o código PHP personalizado pode falhar se chamar uma função que não existe mais ou que ainda não foi definida.
Neste artigo, mostraremos como verificar facilmente se uma função existe antes de adicioná-la ao seu tema do WordPress, permitindo que você evite possíveis erros em seu código.
Por que adicionar “If Function Exists” 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 provedor de hospedagem do WordPress.
Como o código PHP precisa terminar de ser executado antes que a página seja carregada nos navegadores dos visitantes, ele tem 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 a execução do restante do código, ele será interrompido e exibirá uma mensagem de erro crítico ou fatal.
O que pode fazer com que uma função pare de funcionar repentinamente ou desapareça?
Esse é um erro mais comum do WordPress do que você imagina.
Por exemplo, digamos que um dos seus plug-ins do WordPress venha com uma função que você adicionou à área de cabeçalho ou rodapé do seu tema. Desativar o plug-in fará com que a função desapareça e causará o erro crítico em seu site do WordPress.
Dito isso, vamos dar uma olhada em como verificar facilmente se uma função existe antes de executá-la nos arquivos de tema do WordPress.
Verificando se uma função existe no WordPress
Felizmente, a linguagem de programação PHP vem com um método incorporado 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 exemplo de trecho de código que você pode usar para experimentar.
Você pode adicioná-lo diretamente ao arquivo functions.php do seu tema, mas, neste tutorial, usaremos o plug-in de snippet 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 plug-in gratuito WPCode. Se precisar de ajuda para fazer isso, consulte nosso guia passo a passo para iniciantes sobre como instalar um plug-in do WordPress.
Após a ativação, você precisa ir para Code Snippets ” + Add Snippet no painel do WordPress. Uma vez lá, passe o mouse sobre a opção “Add Your Custom Code (New Snippet)” (Adicionar seu código personalizado (novo snippet)) e clique no botão “Use snippet” (Usar snippet) que aparece.
Isso abrirá uma nova página na qual você poderá adicionar seu snippet personalizado. Digite um título como “Display Current Time With Timezone” (Exibir hora atual com fuso horário) e cole o trecho de código abaixo no painel Code Preview (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>";
}
Depois disso, você precisa selecionar “PHP Snippet” no menu suspenso Code Type (Tipo de código) para garantir que o código seja executado corretamente.
Por fim, você deve alternar o botão Ativar para a posição Ativado e clicar no botão “Salvar snippet” para armazenar seu novo snippet de código.
Para chamar essa função, você precisará adicionar o seguinte código em qualquer lugar do seu tema do WordPress onde deseja exibir a hora atual.
<?php wpb_show_timezone(); ?>
Esta é a aparência em nosso site de teste.
Agora, o que aconteceria se o código responsável pela execução dessa função desaparecesse?
A chamada para a função interromperá seu site da seguinte forma.
Vamos adicionar uma verificação para garantir que esse código seja executado somente quando a função existir.
Novamente, você precisará adicionar o código diretamente ao arquivo functions.php do seu tema ou usar um plug-in de snippet 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()
. Essa função verifica se uma função existe e retorna True ou False.
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.
Esperamos que este artigo tenha ajudado você a aprender como verificar se uma função existe no WordPress. Talvez você também queira ver nosso guia sobre como exibir facilmente o código em seu site WordPress ou nossa seleção especializada dos melhores editores de código para Mac e Windows para editar arquivos do WordPress.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Rakib
really helpful
Joana Pereira
Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.
Thanks for the tip
Joana Pereira
kovshenin
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