Sempre postamos tutoriais que envolvem adicionar trechos de código (snippets) ao arquivo functions.php do seu tema WordPress. Embora este processo seja bastante fácil para aqueles que sabem como o PHP funciona, parece um pouco complicado para os iniciantes. Muitas vezes, novos usuários querem realizar o resultado final do tutorial, mas falta-lhes o conhecimento de PHP para entender como colar o código corretamente, sem prejudicar o site. Não há nada de errado com isso, e se você está lendo este artigo, provavelmente prejudicou o seu site fazendo isso. Antes, queremos assegurar-lhe de que você não é o único. Todos nós, quando começamos cometemos esse erro. Neste artigo, vamos mostrar a você como evitar os erros mais comuns, quando for colar o código PHP de tutoriais no arquivo functions.php do seu tema WordPress.
[nota]O arquivo functions.php do tema, geralmente, está localizado na pasta /wp-content/themes/seutema/. Este arquivo NÃO é o mesmo que o arquivo functions.php (core do WordPress) localizado no diretório /wp-includes/.[/nota]
ATUALIZAÇÃO IMPORTANTE:
Recomendamos ultimamente, que você crie um Plugin Específico do Site para colar seus Snippets. Clique no link para saber mais sobre isso.
Para entender como colar o código corretamente, você precisa entender a semântica básicos do PHP.
//Esta é a tag de abertura de um código PHP <?php //Esta é a tag de fechamento de um código PHP ?>
A razão pela qual você precisa para se familiarizar com isso é porque mais de 95% dos problemas que temos corrigido, envolve problemas de colar o código em um lugar errado. Então, saber a semântica do PHP é muito útil. Abaixo estão alguns dos erros mais comuns que vemos:
1° Erro Mais Comum
O usuário encontra um código PHP no site, como abaixo, e cola-o no lugar errado.
<?php add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'https://wp24horas.com.br'; } ?>
Código do arquivo functions.php do tema Exemplo (Nota: Geralmente o arquivo functions.php do tema tem muito mais código, mas a ideia é a mesma):
<?php //Toneladas de código PHP que já existe aqui no seu arquivo //O Usuário deve copiar e colar o snippet que encontraram na web como este: <?php add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'https://wp24horas.com.br'; } ?> ?>
Obviamente, isso vai pirar o WordPress, porque você tem uma nova tag de abertura PHP sem fechar a tag PHP existente. Há duas maneiras de corrigir esse problema. O primeiro método é colar o item no lugar certo:
<?php //Toneladas de código PHP que já existe aqui no seu arquivo //Veja como fechamos corretamente a primeira tag PHP ?> //Agora nos podemos abrir outra tag PHP. <?php add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'http://www.wpbeginner.com'; } ?>
Observe, como nós colamos corretamente o código PHP depois que a tag PHP anterior foi fechada.
Outro método é simplesmente retirar a tag de abertura e fechamento de sua nova função WordPress. Assim, o exemplo ficaria assim:
<?php //Toneladas de código PHP que já existe aqui no seu arquivo // Novo código só vai aqui (Observe como nós retiradmos as tags de abertura e fechamento do PHP do novo código) add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return 'https://wp24horas.com.br'; } ?>
2° Erro Mais Comum
Cada autor de tutorial tem seu próprio estilo de escrever. Alguns mantêm seus snippets dentro das tags PHP como você viu no exemplo acima. Outros autores não envolvem seus snippets com tags PHP.
Isso nos leva ao segundo problema. Se você tem um código como este:
function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo');
O autor está supondo que você sabe que este código deve ir dentro das tags PHP. Alguns até sugerem que você coloque o seu código na parte inferior do arquivo functions.php do seu tema. O exemplo de um erro de iniciante é:
<?php //Toneladas de código PHP que já existe aqui no seu arquivo ?> //Em seguida, o usuário cola o código aqui (Observe que a tag PHP já está fechados acima): function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo');
Note que o usuário colou o código fora das tags PHP. O WordPress não sabe qual é o código, assim, vai parar.
Um código correto seria algo como isto:
<?php //Toneladas de código PHP que já existe aqui no seu arquivo //O novo vai aqui function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo'); //PHP End Tag ?>
3° Erro Mais Comum
Agora que nós falamos sobre a questão de abertura e fechamento das tags PHP, o último erro mais comum que vemos, envolve usuário colando novos snippets dentro de uma função existente.
A anatomia de uma função geralmente se parece com isso:
function custom_function_name() { // Esta é a tag de abertura da função<br /><br />//O código especifico para a função vai aqui<br /><br />} // Esta é a tag de fechamento da função
Se você colar uma outra função dentro de uma função, então ele fará com que seu site pare. Um exemplo deste erro seria algo como:
function custom_function_name() { // Esta é a tag de abertura da função // O código específico para a função vai aqui function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo'); } // Esta é a tag de fechamento da função
Você não pode fazer isso. Cada função é independente, então, você não pode colocar as duas juntas. A maneira correta de colar seria assim:
function custom_function_name() { // Está é a tag de abertura da função // o código específico da função vai aqui } // Esta é a tag de fechamento da função function custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; } </style>'; } add_action('login_head', 'custom_loginlogo');
Os 3 erros comuns acima, provavelmente, são a razão pela qual o seu tema deixou de funcionar, quando você copiou e colou um snippet da web no arquivo functions.php do seu tema WordPress
Outras dicas úteis
Há momentos em que nós rodamos snippets apenas para descobrir que o código colado tinha erros. Alguns realmente, são erros descuidados, como o desenvolvedor não colocar “;” ou fechar uma citação. Outros eram erros funcionais, com o próprio código ou o usuário não seguindo as instruções corretamente.
É fundamental que você tenha o plugin ativado se ele estiver sendo usado no tutorial. Alguns autores de tutorial apenas chamam a função do plugin, diretamente em seu snippet sem ter a instrução condicional para verificar se o plugin existe. Você pode culpar tanto o usuário quanto o autor por isso. O autor deveria ter inserido a instrução condicional no lugar certo, mas o usuário também deveria ter lido o artigo de forma adequada e instalado o plugin necessário.
Há momentos em que você encontra snippets longos, que você realmente deseja. Por exemplo, nosso snippet do Gravity Forms. Alguns autores têm a tendência de explicar o código para seus usuários (o que é uma coisa boa), mas também faz com que haja erros no código. Então, uma coisa que nós fazemos é rolar para baixo ou para cima para tirar o snippet de código final, ao invés de juntar as peças por nós mesmos.
Deparou-se com esses erros? Como você lidou com eles? Você encontrou um problema que nós não mencionamos acima? Se sim, por favor, compartilhe conosco nos comentários.