Use wp_enqueue_script()
no seu tema
A resposta básica é usar wp_enqueue_script()
em um wp_enqueue_scripts
gancho para front-end admin_enqueue_scripts
para administrador. Pode parecer algo assim (que assume que você está chamando do functions.php
arquivo do seu tema ; observe como faço referência ao diretório da folha de estilo):
<?php
add_action( 'wp_enqueue_scripts', 'mysite_enqueue' );
function mysite_enqueue() {
$ss_url = get_stylesheet_directory_uri();
wp_enqueue_script( 'mysite-scripts', "{$ss_url}/js/mysite-scripts.js" );
}
Esse é o básico.
Scripts dependentes predefinidos e múltiplos
Mas digamos que você deseja incluir o jQuery e o jQuery UI Sortable na lista de scripts padrão incluídos no WordPress e deseja que seu script dependa deles? Fácil, basta incluir os dois primeiros scripts usando os identificadores predefinidos definidos no WordPress e, para o seu script, fornecer um terceiro parâmetro ao wp_enqueue_script()
qual é uma matriz dos identificadores de script usados por cada script, da seguinte forma:
<?php
add_action( 'wp_enqueue_scripts', 'mysite_enqueue' );
function mysite_enqueue() {
$ss_url = get_stylesheet_directory_uri();
wp_enqueue_script( 'mysite-scripts', "{$ss_url}/js/mysite-scripts.js", array( 'jquery', 'jquery-ui-sortable' ) );
}
Scripts em um plug-in
E se você quiser fazer isso em um plug-in? Use a plugins_url()
função para especificar o URL do seu arquivo Javascript:
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'wp_enqueue_scripts', 'my_plugin_enqueue' );
function my_plugin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url('/js/my-script.js',__FILE__), array('jquery','jquery-ui-sortable'), MY_PLUGIN_VERSION );
}
Versionando seus scripts
Observe também que, acima , demos um número de versão ao nosso plug-in e passamos como um quarto parâmetro para wp_enqueue_script()
. O número da versão é gerado na fonte como argumento de consulta no URL para script e serve para forçar o navegador a baixar novamente o arquivo em cache, se a versão foi alterada.
Carregar scripts apenas nas páginas onde for necessário
A 1ª regra do Desempenho da Web diz Minimizar solicitações HTTP; portanto, sempre que possível, você deve limitar os scripts a carregar apenas quando necessário. Por exemplo, se você precisar apenas do seu script no administrador, limite-o às páginas de administrador usando o admin_enqueue_scripts
gancho:
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'admin_enqueue_scripts', 'my_plugin_admin_enqueue' );
function my_plugin_admin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url( '/js/my-script.js', __FILE__ ), array( 'jquery', 'jquery-ui-sortable' ), MY_PLUGIN_VERSION );
}
Carregar seus scripts no rodapé
Se o seu script é um daqueles que precisam ser carregados no rodapé, existe um quinto parâmetro wp_enqueue_script()
que diz ao WordPress para atrasá-lo e colocá-lo no rodapé (assumindo que o tema não tenha se comportado mal e que de fato chama o gancho wp_footer como todos bons temas para WordPress ):
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'admin_enqueue_scripts', 'my_plugin_admin_enqueue' );
function my_plugin_admin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url( '/js/my-script.js', __FILE__ ), array( 'jquery', 'jquery-ui-sortable' ), MY_PLUGIN_VERSION, true );
}
Controle de granulação mais fina
Se você precisar de um controle mais refinado do que o Ozh, tenha um ótimo artigo intitulado Como: Carregar Javascript com o Plug-in do WordPress que detalha mais.
Desabilitando scripts para obter controle
Justin Tadlock tem um bom artigo intitulado Como desativar scripts e estilos , caso você queira:
- Combine vários arquivos em arquivos únicos (a milhagem pode variar com o JavaScript aqui).
- Carregue os arquivos apenas nas páginas em que estamos usando o script ou o estilo.
- Pare de ter que usar! Important em nosso arquivo style.css para fazer ajustes simples de CSS.
Passando valores de PHP para JS com wp_localize_script()
Em seu blog, Vladimir Prelovac tem um ótimo artigo intitulado Práticas recomendadas para adicionar código JavaScript aos plug-ins do WordPress, onde ele discute o uso wp_localize_script()
para permitir que você defina o valor das variáveis no PHP do servidor para serem usadas posteriormente no Javascript do cliente.
Controle de grão realmente fino com wp_print_scripts()
E, finalmente, se você precisar de um controle realmente refinado, poderá analisar wp_print_scripts()
como discutido no Beer Planet em uma postagem intitulada Como incluir CSS e JavaScript condicionalmente e somente quando necessário pelas postagens .
Epiloque
Para isso, é recomendável incluir os arquivos Javascript no WordPress. Se eu perdi alguma coisa (o que eu provavelmente tenho), informe-me nos comentários para que eu possa adicionar uma atualização para futuros viajantes.