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 <link>

<link rel='stylesheet' id='fw-font-awesome-css' href='http://cdn1.netmundo.com.br/wp-content/plugins/unyson/framework/static/libs/font-awesome/css/font-awesome.min.css' type='text/css' media='all' />

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.

screenshot-netmundo.com.br 2016-05-10 09-48-04

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í!

Deixe um comentário