Como descobrir handle dos scripts no WordPress
Às vezes, você programa tudo meticulosamente em um tema, mas vem um plugin e acaba inserindo algo que você não quer ou já carregou em seu próprio código.
E agora? Como fazer para impedir que outros arquivos deixem seu site mais lento no carregamento?
A reposta é simples. Do mesmo jeito que você pode incluir arquivos CSS e JS no WP usando wp_enqueue_scripts, você pode removê-los. Veja um exemplo abaixo de carregamento condicional:
add_action( 'wp_enqueue_scripts', 'remove_scripts', 100 ); function remove_scripts() { if ( !is_single() ) { wp_dequeue_script( 'cwi_form_validate' ); wp_dequeue_script( 'essb-mailform' ); wp_dequeue_style( 'easyrecipestyle-reset' ); wp_dequeue_style( 'easyrecipebuttonUI' ); wp_dequeue_style( 'easyrecipestyle' );
} if (!is_page()){ wp_dequeue_style( 'dlm-frontend' ); } }
No exemplo acima, precisava que alguns arquivos fossem chamados somente em páginas de post ou páginas comuns.
A sintaxe é a seguinte:
wp_dequeue_style( '$handle' ); //para CSS wp_dequeue_script( '$handle' ); //para JS
Removendo arquivos CSS
Onde, o $handle é o slug do script. Para CSS é fácil de achar, basta olhar no código da sua página, na seção Head e procurar pela tag
O nosso handle aqui é o id, "fw-font-awesome", sem o "-css". Então, para remover este arquivo do carregamento, usaríamos:
wp_dequeue_style( 'fw-font-awesome' ); //para CSS
Removendo arquivos JS
Para remover os arquivos javascript/jQuery, é um pouco mais chato, já que a tag gerada pelo Wordpress não mostra o handle. Vamos ter que usar um código no functions.php temporariamente para poder descobrir os IDs:
function wpa54064_inspect_scripts() {
global $wp_scripts;
if (is_user_logged_in()):
foreach( $wp_scripts->queue as $handle ) :
echo $handle,'<br>';
endforeach;
endif;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );
Modifiquei a versão original, para mostrar os handles apenas para quem estiver logado.

A imagem acima é um exemplo do código gerado. Assim, para remover o JS "customize-preview-nav-menus":
wp_dequeue_script( 'customize-preview-nav-menus' ); //para JS
É isso aí!
Comentários
Carregando comentários…
Deixe um comentário