Avançar para conteúdo

Tudo para WordPress

Plugins, Temas, dicas de WordPress e muito mais para você que busca informação sobre este excelente CMS!

  • Twitter
  • Facebook
  • Google+
  • RSS
Entenda com funciona Assine nosso RSS

Como carregar o Contact Form 7 apenas na página de contato?

Publicado em 28/10/2011 às 17h43 por Guga Alves

Se você usa o plugin Contact Form 7 para gerar formulários de contato em seu site e é tão aficcionado por performance quanto eu, deve ter notado que este plugin adiciona seus arquivos .js e .css em TODAS as páginas de seu site mesmo que eles não sejam usados nelas.

Ao ler o parágrafo acima, você pode ter ficado preocupado e ter pensado até em parar de usar tal plugin e começar a usar outroo para exercer tal função, mas a boa notícia é que é estremamente fácil corrigir este problema e carregar apenas os recursos do plugin em uma página específica do seu blog WordPress. Simplesmente criando algumas linhas de código no arquivo functions.php do seu tema atual, você pode controlar quando scripts e folhas de estilo são carregados para este e muitos outros plugins que você instalou. Vejamos como fazer isso para o contato do plugin Form 7.

Cancelando o carregamento de Scripts e Stylesheets

Muitos plugins utilizam a função wp_enqueue_script do WordPress para carregar arquivos de suporte Javascript e a função wp_enqueue_style para carregar qualquer estilo usado pelo plugin. Entretanto, nem todos os plugins usam estas duas funções, pois podem fazer tal chamada através do comando echo. Se um plugin usa as funções do WordPress, você pode usar duas outras funções WordPress para cancelar o registro dos recursos quando não são necessários. As duas funções WordPress são: wp_deregister_script e wp_deregister_style.

Para cancelar o registro de uma folha de estilo ou script você precisará utilizar as funções acima e você pode facilmente encontrar isso através de pesquisa através dos arquivos do plugin até encontrar onde a folha de estilo ou script é registrado.

No caso do Contact Form 7, as seguintes linhas de código são usados ​​para registrar o script e estilo:

wp_enqueue_script( ‘contact-form-7‘, wpcf7_plugin_url( ‘scripts.js’ ), array( ‘jquery’, ‘jquery-form’ ), WPCF7_VERSION, $in_footer );
wp_enqueue_style( ‘contact-form-7‘, wpcf7_plugin_url( ‘styles.css’ ), array(), WPCF7_VERSION, ‘all’ );

O trecho acima destacado em negrito se refere ao nome que é dado a função que carrega tais itens, e você precisará saber exatamente isso para poder utilizar o wp_deregister.

Alterando o carregamento de Scripts e Stylesheets do Contact Form 7

Para carregar o script e css do Contact Form 7 apenas na página de Contato, adicione o seguinte snippet em seu arquivo functions.php:

add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
function my_deregister_javascript() {
if ( !is_page(‘Contato’) ) {
wp_deregister_script( ‘contact-form-7’ );
}}
add_action( ‘wp_print_styles’, ‘my_deregister_styles’, 100 );
function my_deregister_styles() {
if ( !is_page(‘Contato’) ) {
wp_deregister_style( ‘contact-form-7’ );
}}

O script acima irá checar se a página a ser carregada não se chama” Contato” e se não for tal página irá “barrar” o carregamento dos scripts do Contact Form 7, fazendo tal script ser carregado apenas na página correta. Logicamente você deve alterar o nome da página para o nome ou ID de sua página,

Se você desejar fazer o mesmo com outros plugins você pode adicionar mais alguns if’s e wp_deregister e fazer a verificação na mesma função, mas você precisará pesquisar o nome usado para tal.

Dica simples que impactará diretamente no tempo de carregamento de seu site!

Update: Conforme comentário do Gabriel e dica do WpDevel, destacamos que para total compatibilidade com o WP 3.3 e versões posteriores, você deve utilizar a função wp_enqueue_scripts no lugar de wp_print_styles. Mais informações no post original do WpDevel. Desde já obrigado Gabriel!

19 pessoas comentaram o artigo

  • Andre Totslaw comentou em 27 de março de 2012.

    Prezado Guga,

    por favor, em quais arquivos incluir os comandos?
    Em quais arquivos aparecem os comandos de carga?
    Como fazer quando tenho 2 paginas de Contato (Fale conosco e Trabalhe conosco)?
    Como alrero a distribuição dos campos da página de contato?
    Fiquei confuso…

    Responder esse usuário
  • Frases engraçadas comentou em 30 de abril de 2012.

    Nó, adorei essa dica, muito boa, porque formulários são sempre tão difíceis de implementar hein?!
    Tenho muito problema com alguns que na hora de sair para enviar dá pau, não sei pq. :(

    Responder esse usuário
  • 1 2

Participe e deixe o seu comentário!

Procurando Temas?

Acesse o arquivo de Temas WordPress