Home / Tutoriais e Dicas / Como editar o arquivo function?

Como editar o arquivo function?

‘‘

Antes de ler este tutorial recomendo já ter lido este outro artigo primeiro
Como editar os arquivos do tema corretamente

Em se tratando de WordPress você encontra vários sites disponibilizando códigos interessantes para serem inseridos no arquivo functions do seu tema, muitos destes códigos são realmente úteis e realmente funcionam como esperado, mas existe alguns poucos sites que não disponibilizam o código perfeito.

Isso ocorre porque o WordPress por padrão troca aspas simples e duplas por aspas inglesas na hora da publicação do artigo e acabamos copiando o código errado sem saber.

Se você estiver fazendo um teste com um desses códigos diretamente em seu site isso pode ser desastroso, por isso vamos ver hoje como identificar e corrigir esses códigos antes de testá-los.

‘‘

Se possível sempre faça testes locais em um ambiente seguro (Localhost) e não diretamente em seu site, isso evitar problemas e muito inconvenientes, mas se não tem jeito sigas as dicas a seguir.

 

Identificando códigos mal formatados

Código Errado

add_filter(‘gancho’ , ‘função’, 1);
Código correto

add_filter('gancho' , 'função', 1);

Então a melhor forma de saber se o código está correto é usando programas específicos para edição de arquivos PHP, como o NotePad++, Dreamweaver e outros. Desta forma, assim que você colocar o código com aspas inglesas no seu editor as cores irão revelar que o código não está correto.

 

Em que parte do arquivo functions devo colocar o código?

Se não foi dito que o código deve ser inserido em alguma parte específica, suponha sempre que o código poderá ser inserido em qualquer parte do seu functions, desde que não seja entre outros códigos já existentes.

Para garantir que não haja conflito com outros códigos e se não foi dito que precisa ser colocado em uma área específica, coloque no final do arquivo functions antes do fechamento da tag PHP ?>, como no exemplo a seguir.

Antes

function remove_page($query){
if ( $query->is_search ) {
	$query->set('post_type','post');
}
return $query;
}
?>

Depois

function remove_page($query){
if ( $query->is_search ) {
	$query->set('post_type','post');
}
return $query;
}

O novo código deve ser inserido aqui
?>

 

Como posso disponibilizar códigos sem este erro?

Para postar códigos sem essa troca de aspas você tem algumas opções, a mais recomendada é usar um plugin específico para esta finalidade, além de impedir o código de ficar mal formatado esses plugins aplicam cores e preservam a indentação do código.

Veja alguns plugins que fazem isso no Repositório do WordPress. Este recurso é conhecido como highlighter.
Mas sem usar plugin você também pode fazer isso, basta envolver o código entre as seguintes tags HTML
<pre>, <code>, <kbd> ou <tt>. Essas tags não são afetadas pelo filtro wptexturize responsável por esta mudança nas aspas e mantém as aspas como você as colocar.

Algumas pessoas preferem desativar este filtro por completo, se você quiser fazer isso adicione ao functions.php do seu tema os seguintes códigos.

//Desativa o filtro para os posts.
remove_filter('the_content', 'wptexturize');
//Desativa o filtro para os comentários.
remove_filter('comment_text', 'wptexturize');
//Desativa o filtro para o resumo
remove_filter('the_excerpt', 'wptexturize');
‘‘

Quero deixar claro que não recomendo a remoção deste filtro, pelo simples motivo que este filtro passa por várias funções do WordPress e não temos como saber a extensão que a remoção deste filtro pode causar, então use o código por sua conta e risco, caso encontre algum problema remova o código e o filtro voltará a funcionar.

Chegamos ao final deste tutorial e espero que isso possa ajudar algumas pessoas a diminuir o risco de testes com códigos em ambiente de trabalho, sendo que é sempre bom testar códigos novos em ambiente local primeiro e só depois aplicar no site realmente.

Se tiver alguma dúvida ou sugestão, sinta-se livre para comentar.

6 Comentários.

Assinar feed dos Comentários

  1. @erexim 10/22/2011 - 10:14 AM

    Show de bola a dica, e se eu enfiar o código que achei na internet, para criar nova sidebar, ANTES do “function remove_page($query){” por exemplo ia dar certo?

       Responder
    • Myst1010 10/22/2011 - 10:50 AM

      Não vi o código que você vai usar, mas o mais provável é que possa sim ser colocado nesta parte que você falou, mas como eu disse no tutorial, aconselho você colocar antes de tag ?> do seu functions.php, porque é um código que você está testando e caso dê alguma erro fica mais fácil identificar e corrigir o código.
      Abraços e obrigado pelo comentário.

         Responder
  2. Alessandro 05/09/2012 - 5:10 PM

    Olá,

    Gostei muito do blog!

    Contudo, ainda estou em dúvidas sobre um problema que apareceu depois de instalado o Profits Theme no meu wordpress.

    Quando estou escrevendo algum artigo ou página e clico no ícones de recursos, tais como inserir gráficos, box, etc…do tema, aparece esse código:

    Warning: require_once(../../../../../../../../wp-config.php) [function.require-once]: failed to open stream: No such file or directory in /home/minisite/public_html/perderpesoemumasemana.com/wp-content/themes/profitstheme/profitstheme/lib/scripts/tinymce/plugins/boxes/box.php on line 2

    Fatal error: require_once() [function.require]: Failed opening required ‘../../../../../../../../wp-config.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/minisite/public_html/perderpesoemumasemana.com/wp-content/themes/profitstheme/profitstheme/lib/scripts/tinymce/plugins/boxes/box.php on line 2

    Já abri as pastas que estão no meu pc ,e olhei os códigos e comparei com os que estão hospedados em meu servidor e aparentemente não vi nenhuma diferença. Quanto às aspas também me parece que esse não é o problema (ou será que não vi direito ?)

    Você poderia me ajudar por favor?

       Responder
    • Myst1010 05/09/2012 - 5:35 PM

      Olá Alessandro, o que está acontecendo é que o arquivo wp-config.php não está conseguindo ser localizado, acredito que seja pela quantidade de diretórios que o código está voltando para tentar abrir o arquivo.
      Vejamos, cada um ../ no código require_once(../../../../../../../../wp-config.php) é um diretório que está sendo retornado para tentar abrir o arquivo wp-config.php,
      tente diminuir ou aumentar o número de ../ para que o arquivo consiga ser localizado.

      O arquivo que deve ser editado está localizado em themes/profitstheme/profitstheme/lib/scripts/tinymce/plugins/boxes/box.php

      Se seguindo esta dica não conseguir resolver o problema, entre em contato com o suporte do tema, pois este é premium e eles tem a obrigação de corrigir o problema e lhe dar suporte.

         Responder
  3. Diogo Koba 10/02/2012 - 1:00 PM

    Cara depois de muita pesquisa na net cai neste site por acaso e achei justamente o que procurava para resolver meu problema, nem mesmo os site americanos e o wordpress publicou algo assim, vc esta de parabéns, nao apenas pelo post mas tb pela otima pagina e organização.
    forte abraço
    e obrigado pela ajuda.

       Responder

Deixe seu Comentário

O seu endereço de email não será publicado.
Todos os campos com * são obrigatórios.




Perdeu a senha?     Registrar-se