Normalmente, quando estamos desenvolvendo um tema
ou um plugin, sentimos a necessidade de utilizar alguma biblioteca em
javascript para facilitar a realização de determinada tarefa. A maneira
mais fácil é sem dúvida utilizando a tag ‘<script>’ no corpo do
seu arquivo. Agora imagine que todos os desenvolvedores que utilizam jquery
resolvam adicionar as chamadas à biblioteca no corpo de seus plugins.
Usuários que possuam vários plugins ativos provavelmente terão uma
baita dor de cabeça mais cedo ou mais tarde quando esses plugins
causarem algum conflito.
Como não podia deixar de ser, o WordPress já tem uma solução para os
nossos problemas. Uma função chamada ‘wp_enqueue_scripts’ que é
responsável por enfileirar e ordenar a chamada das bibliotecas,
evitando assim a duplicação de arquivos e, possibilitanto, o
carregamento das dependências antes.
A primeira coisa que você deve fazer é registrar a biblioteca para
que o WordPress saiba que ela existe. Isso deve ser feito utilizando a
seguinte função:
wp_register_script($handle, $src, $deps = array(), $ver = false)
O parâmetro obrigatório ‘$handle’ é o identificador único da
biblioteca, o nome pelo qual o WordPress saberá quem é quem no conjunto
de bibliotecas disponível. Em seguida vem o ‘$src’, que informa o
endereço do arquivo, também obrigatório. Caso esse arquivo tenha alguma
dependência, esta deve ser informadas em ‘$deps’ no formato de array,
onde cada item do array é uma dependência a ser satisfeita. Essas
dependências são informadas pelo ‘$handle’ das respectivas
dependências. E por último (e menos importante) ‘$ver’ é a versão do
script.
Não é possível registrar um script que já esteja registrado. Caso
você tente, seu script será ignorado. Mas se for realmente necessário,
você pode remover um script anterior para adicionar o seu. Isso pode
acontecer quando você desenvolve para versões mais antigas do WP. Para
remover um script utilize:
wp_deregister_script($handle)
Onde ‘$handle’ é o identificador do script que você deseja remover.
Depois de definidos, os scripts e suas dependências, você deve
informar quais scripts devem ser carregados e onde eles serão
carregados. Para a primeira questão, use:
wp_enqueue_script($handle, $src = false, $deps = array(), $ver = false)
Apesar de todos os parêmetros dessa função, o único obrigatório é o
‘$handle’ que informa qual o script será carregado. Os outros
parâmetros são exatamente iguais aos parâmetros do wp_register_script e
funcionam da mesma forma. A resposta pra isso é que se o script
definido pelo $handle não estiver registrado o WordPress utiliza o
atual.
Pronto! Agora só falta informar onde o script deve ser carregado.
Nos temas, basta colocar a chamada ‘wp_queue_script’ no template onde a
biblioteca será utilizada e o ‘wp_head’ faz o resto. Assim, se você
pretende usar a biblioteca jquery nos resultados das buscas, adicione ao search.php a linha:
<?php wp_enqueue_script('jquery'); ?>
Já na área administrativa você precisa criar uma função que carregue o script e adiciona-la à ação ‘init’, por exemplo:
function load_scripts()
{
wp_enqueue_script('jquery');
}
add_action('init', 'load_scripts');
É isso essa explicação também se aplica aos estilos você só precisa
mudar as funções para ‘wp_register_style’, ‘wp_deregister_style’ e
‘wp_enqueue_style’ respectivamente. E para conferir os scripts e
estilos que o WordPress carrega por padrão, confira o arquivo
script-loader.php na pasta wp-includes.