it-swarm-pt.tech

Restringindo um Plugin para Carregar Apenas seu CSS e JS em Páginas Selecionadas?

Gostaria de fazer com que um plug-in restringisse o carregamento de folhas de estilo CSS e JavaScript JS apenas para as páginas para as quais são necessárias.

Um exemplo para minha pergunta é o plugin Contact Form 7 que eu usei para criar um formulário em uma página do meu site (a página " contact me "). No entanto, adiciona as seguintes linhas a todas as páginas/postagens no site:

<link rel='stylesheet' id='contact-form-7-css'  href='http://www.r-statistics.com/wp-content/plugins/contact-form-7/styles.css?ver=2.3.1' type='text/css' media='all' /> 

<script type='text/javascript' src='http://www.r-statistics.com/wp-content/plugins/contact-form-7/scripts.js?ver=2.3.1'></script> 

Isso me faz suspeitar que este plugin está prejudicando o tempo de carregamento do meu site, para uma extensão que me interessa em apenas uma página no site.

Assim, a minha pergunta é como posso remover essas linhas extras de todas as páginas, exceto para a página "Fale comigo", mas sem desativar o plugin?

9
Tal Galili

Estilos e scripts são sempre configurados pelas funções wp_enqueue_script() e wp_enqueue_style(), que devem estar ligadas a um gancho de ação específico para funcionar. Eu dei uma olhada no Formulário de Contato 7 e parece que ele está usando tags de ação de wpcf7_enqueue_scripts e wpcf7_enqueue_styles para adicioná-las aos ganchos wp_print_scripts e wp_print_styles.

Então, o que você precisa fazer é desvincular os scripts e estilos de cada página mas sua página de contato. A ação wp_head é acionada antes das ações de script e estilos, portanto, é necessário adicionar algo assim ao arquivo functions.php do seu tema:

function remove_wpcf7_extras() {
    remove_action('wp_print_scripts', 'wpcf7_enqueue_scripts');
    remove_action('wp_print_styles', 'wpcf7_enqueue_styles');
}

if( ! is_page('contact me') ) {
    add_action('wp_head', 'remove_wpcf7_extras');
}

A função is_page () retornará true quando você estiver na página de contato (assumindo que o nome é "contact me") ... você também pode usar o slug de página e o ID da página para o filtro. Em todas as outras páginas, a condicional if() adicionará a função de remoção de script/estilo à ação wp_head, que é acionada logo antes das ações wp_print_scripts e wp_print_styles.

Isso deve remover o código extra de suas páginas, e você não precisará desativar o plug-in ou editar os arquivos principais. As funções e códigos que listei acima também não farão com que seu tema seja quebrado se você remover o Contact Form 7 no futuro, ou ... então não precisa se preocupar com a futura compatibilidade com atualizações.

9
EAMann