Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Melhores práticas: Verifique se a função existe ao adicioná-la no tema do WordPress

Recentemente, um usuário nos perguntou como verificar se uma função PHP existe antes de adicionar um novo código ao seu site WordPress que depende dela.

A melhor parte do WordPress é sua flexibilidade, incluindo a capacidade de adicionar suas próprias funções personalizadas ao seu site. Entretanto, às vezes, seu código personalizado pode não funcionar porque a função à qual ele se refere não existe mais.

Neste artigo, mostraremos como verificar facilmente se uma função existe antes de adicioná-la ao seu tema do WordPress.

Checking if a function exists in WordPress

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.

WordPress critical error message

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.

Adding Custom Code in WPCode

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>";
}
Paste the Code Snippet Into WPCode

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.

Activate and Save the Code Snippet

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.

Function runs normally

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.

Critical error in WordPress

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.

Missing function skipped

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 completo de solução de problemas do WordPress ou nossas escolhas de especialistas para os melhores construtores de páginas de arrastar e soltar 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.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

O kit de ferramentas definitivo WordPress

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

Reader Interactions

4 ComentáriosDeixe uma resposta

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. 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

  3. 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 :)

Deixe uma resposta

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