Úselo wp_enqueue_script()
en su tema
La respuesta básica es usar wp_enqueue_script()
en un wp_enqueue_scripts
gancho para front-end admin_enqueue_scripts
para el administrador. Puede verse más o menos así (lo que supone que está llamando desde el functions.php
archivo de su tema ; observe cómo hago referencia al directorio de la hoja 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" );
}
Eso es lo básico.
Scripts predefinidos y dependientes múltiples
Pero supongamos que desea incluir jQuery y jQuery UI Sortable de la lista de scripts predeterminados incluidos con WordPress y desea que su script dependa de ellos. Fácil, solo incluya los dos primeros scripts utilizando los identificadores predefinidos definidos en WordPress y para su script proporcione un tercer parámetro para el wp_enqueue_script()
cual es una matriz de los identificadores de script utilizados por cada script, de esta manera:
<?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 en un complemento
¿Qué pasa si quieres hacerlo en un complemento en su lugar? Use la plugins_url()
función para especificar la URL de su archivo 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 );
}
Versiones de sus scripts
También tenga en cuenta que anteriormente le dimos a nuestro complemento un número de versión y lo pasamos como un 4to parámetro a wp_enqueue_script()
. El número de versión se emite en la fuente como argumento de consulta en la URL a la secuencia de comandos y sirve para obligar al navegador a volver a descargar el archivo posiblemente almacenado en caché si la versión cambia.
Cargue scripts solo en páginas donde sea necesario
La primera regla de rendimiento web dice minimizar las solicitudes HTTP, por lo que siempre que sea posible, debe limitar las secuencias de comandos para que se carguen solo donde sea necesario. Por ejemplo, si solo necesita su secuencia de comandos en el administrador, limítelo a las páginas de administración que usan el admin_enqueue_scripts
gancho en su lugar:
<?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 );
}
Cargue sus scripts en el pie de página
Si sus scripts son uno de los que deben cargarse en el pie de página, hay un quinto parámetro wp_enqueue_script()
que le dice a WordPress que lo retrase y lo coloque en el pie de página (suponiendo que su tema no se haya comportado mal y que realmente llame al gancho wp_footer como todos buenos temas de WordPress deberían ):
<?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 );
}
Control de grano más fino
Si necesita un control más detallado que eso, Ozh tiene un excelente artículo titulado Cómo: cargar Javascript con su complemento de WordPress que detalla más.
Deshabilitar secuencias de comandos para ganar control
Justin Tadlock tiene un buen artículo titulado Cómo deshabilitar scripts y estilos en caso de que desee:
- Combine varios archivos en archivos únicos (el kilometraje puede variar con JavaScript aquí).
- Cargue los archivos solo en las páginas que estamos usando el script o el estilo.
- ¡Deje de tener que usar! Important en nuestro archivo style.css para hacer ajustes simples de CSS.
Pasar valores de PHP a JS con wp_localize_script()
En su blog, Vladimir Prelovac tiene un excelente artículo titulado Mejores prácticas para agregar código JavaScript a los complementos de WordPress, donde analiza el uso wp_localize_script()
para permitirle establecer el valor de las variables en su PHP del lado del servidor para luego ser utilizado en su Javascript del lado del cliente.
Control de grano muy fino con wp_print_scripts()
Y, por último, si necesita un control muy detallado, puede consultarlo wp_print_scripts()
como se describe en Beer Planet en una publicación titulada Cómo incluir CSS y JavaScript condicionalmente y solo cuando sea necesario por las publicaciones .
Epiloque
Eso es todo por las mejores prácticas de incluir archivos Javascript con WordPress. Si me perdí algo (que probablemente tengo), asegúrese de informarme en los comentarios para que pueda agregar una actualización para futuros viajeros.