Há muitos plugins e themes que adicionam Javascript e CSS no seu blog. Isto, que em si mesmo não é mau, quando usas vários plugins deste tipo podem fazer verdadeiras perrerías com teu lugar, mostrando uma versão lamentável do mesmo quando interferem vários estilos CSS ou scripts.
Felizmente WordPress dispõe de um sistema próprio que permite anular estes scripts e estilos.
Neste exemplo se usam dois plugins muito populares, Contact Form 7 e WP-PageNavi, mas podes aplicá-lo a outros similares, como Sociável, que também peca do mesmo.
A pura realidade
Não todos os plugins fazem bem o trabalho carregando scripts e estilos, muitos deles só pensam em sua funcionalidade, sem ter em conta que terão que conviver com outros plugins, com teu theme, inclusive com WordPress. Muitos desenvolvedores metem “o seu” e depois te tens que procurar a vida se há problemas, inclusive recomendando-te (quando lhes perguntas) que desatives os outros plugins ou “mudes de theme” (verídico).
Não todos os plugins usam métodos adequados para o ônus de scripts e estilos. A maior parte das ocasiões é porque não dominam dois importantes funções de WordPress: wp_enqueue_script()
y wp_enqueue_style()
. Se o autor de um plugin/theme não usa estas funções melhor procura-te outro plugin/theme ou anima-lhe a fazê-lo. O que fazem é permitir ao resto conviver com seu código.
Uma vez tenhas claro que scripts ou CSS queres desativar já te podes pôr mãos à obra …
Desativando Javascript
No exemplo vamos desativar o Javascript do plugin Contact Form 7. O primeiro que temos que fazer é encontrar o telefonema ao script. Para isso abrimos o ficheiro wp-contact-form-7
.php num editor de texto e procuramos a corrente wp_enqueue_script
. Encontraremos o seguinte:
[sourcecode language=”php”]wp_enqueue_script( ‘contact-form-7’, wpcf7_plugin_url( ‘contact-form-7.js’ ), array(‘jquery’, ‘jquery-form’), WPCF7_VERSION, $in_footer );[/sourcecode]
O chama ao Javascript do plugin é, em conseqüência, contact-form-7. Agora já podemos fechar o arquivo e seguir adiante.A seguir abrimos o ficheiro functions.php de teu theme e adicionamos este código PHP:
[sourcecode language=”php”]add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
function my_deregister_javascript() {
wp_deregister_script( ‘contact-form-7’ );
}[/sourcecode]
Guardamos o arquivo e o que conseguimos é que o script não se volte a carregar. Podes desativar (desregistrar) tantos scripts como queiras com esta função.
Desativando estilos
Para este exemplo vamos desativar a folha de estilos do plugin WP-PageNavi. E é que é quase melhor sempre adicionar estilos em teu CSS, e não que os coxa das pastas dos plugins, as vezes atualizam os plugins com mudanças de CSS que podem destroçar tua theme.O primeiro que temos que fazer é abrir o ficheiro wp-pagenavi.php num editor de texto e procurar wp_enqueue_style
. O que encontramos é este código:
[sourcecode language=”php”]wp_enqueue_style(‘wp-pagenavi’, get_stylesheet_directory_uri().’/pagenavi-css.css’, false, ‘2.50’, ‘all’);[/sourcecode]
E também este outro:
[sourcecode language=”php”]wp_enqueue_style(‘wp-pagenavi’, plugins_url(‘wp-pagenavi/pagenavi-css.css’), false, ‘2.50’, ‘all’);[/sourcecode]
O que estamos procurando é como Page Navi gere os estilos. Uma vez o encontramos já o podemos fechar (depois de analisá-lo) e adicionar o seguinte ao ficheiro functions.php
de teu theme:
[sourcecode language=”php”]add_action( ‘wp_print_styles’, ‘my_deregister_styles’, 100 );
function my_deregister_styles() {
wp_deregister_style( ‘wp-pagenavi’ );
}[/sourcecode]
Com isto desativamos a folha de estilos deste plugin. Como antes, podes “desregistrar” quantos estilos queiras com esta função.
Trucos para melhorar a tarefa
Agora que desativamos scripts e estilos há algumas coisas que podemos fazer para melhorar esta técnica ou dar-lhe outros usos:
- Coloca os estilos desativados (ou os que queiras mudar) ao final de tua folha de estilos (
style.css
), adicionando algum comentário que os identifique, que mostre a que afetam. - Combina vários scripts num só arquivo e carrega-os teu mesmo.
- Usa tags condicionais para afinar o controle do ônus de estilos e/ou scripts.
- Se desativas algo pode que o plugin/theme deixe de funcionar corretamente. A maioria dos estilos podes adicioná-los à folha de estilos de teu theme para assim não carregar várias folhas de estilos. Mas com o Javascript é diferente, com este tipo de código só combina vários scripts se sabes realmente o que estás fazendo
Olá aos autores do blog, é sempre bom ter outros desenvolvedores compartilhando conhecimento,
Muito bem explicado o Post, mas preciso de uma ajuda,
Tenho a necessidade de inserir outros arquivos php dentro de um certo tema, e nele, presciso usar as configurações do wordpress, por exemplo, a conecção com mysql, o uso das funções, ou seja, preciso registrar meu script .php para que ele faça parte do tem,
Voces, ou alguem ai, tem uma dica, tutorial ou algo assim que possa me ajudar ?
Não sei se fui claro, mas desde ja fico grato.
Obrigado pela visita Alex, acho que seria melhor resolver a sua duvida no nosso forum: https://ajudawp.com/forum/
cara, eu quero desativar varios scripts que estão ativos no meu blog, a maioria são ads, porem não encontro o codigo, o que eu faço?