Lo estoy haciendo ahora con el siguiente código:
function uw_load_scripts() {
// De-register the built in jQuery
wp_deregister_script('jquery');
// Register the CDN version
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
// Load it in your theme
wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'uw_load_scripts' );
Esto funciona, pero ¿debería hacerlo para todos, como este, o para todos menos para el administrador (para que el backend use la versión de WordPress?):
if (function_exists('load_my_scripts')) {
function load_my_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
wp_enqueue_script('jquery');
}
}
}
add_action('init', 'load_my_scripts');
Esta versión no funciona en absoluto, obtengo la versión jQuery de WordPress y no la de Google.
Por lo tanto, ¿debo cancelar el registro de jQuery que se incluye en WordPress?
Además, ¿cómo agrego mis propios scripts (scripts de control deslizante, modernizr y mi propio custom.js) de la manera correcta? Supongo que debería hacer esto a través de functions.php también y no en el encabezado como lo estoy haciendo ahora, pero no estoy seguro de cómo lo haría.
wp_enqueue_script()
llamadas.$in_footer
parámetro en verdadero en su llamada awp_enqueue_script()
.Espero que esto ayude, busque el códice para
wp_enqueue_scripts
obtener más información.init
para hacer cola . Úselowp_enqueue_scripts
para material frontal yadmin_enqueue_scripts
para el lado administrativo. Sin embargo, puede usarinit
para registrar scripts.wp_enqueue_scripts
solo se dispara en el front-end (y no en la página de inicio de sesión), por lo que no tiene que verificarlois_admin()
.A menos que tenga una razón específica para hacer lo contrario, sugeriría registrar y poner en cola los scripts utilizando
functions.php
para temas o en un complemento de lo contrario. Simplemente pones:Si el objetivo es poner en cola un script cuando se usa un shortcode, es posible que desee usarlo
wp_enqueue_script
en la devolución de llamada de shortcode para ponerlo en cola solo cuando sea necesario (esto lo imprimirá en el pie de página desde 3.3 ).No debe volver a registrar el jQuery existente en el lado del administrador. Puedes romper algo: D.
Los complementos no deberían volver a registrar el jQuery existente.
Debe sopesar los pros y los contras de volver a registrar jQuery. Por ejemplo, puede romper algunos complementos si registra una versión anterior (tal vez no ahora, pero en el futuro ...)
fuente
Advertencia justa: cancelar el registro de la versión empaquetada de WP de jQuery en favor de la suya puede causar problemas, especialmente si no tiene mucho cuidado para asegurarse de cambiar la versión a la que apunta cada vez que WP actualiza su versión. Esto se aplica doblemente a los complementos, que a menudo (o a menudo deberían, al menos) escribir sus complementos para una máxima compatibilidad con la versión WP de jQuery.
Dicho esto, tu primera versión es correcta, está conectada a
wp_enqueue_scripts
. Su segunda función está conectadainit
, lo que puede ser la razón por la que no funciona correctamente.Agregue sus propios scripts de manera similar:
Asumo aquí que está cargando scripts desde un
js
directorio en su directorio de tema actual; cambie el parámetro URI si eso no es cierto. El tercer parámetroarray( 'jquery' )
dice quebbg-scripts
depende dejquery
, por lo que debe cargarse después. Consulte https://codex.wordpress.org/Function_Reference/wp_enqueue_script para obtener más detalles.fuente
Esto no va a hacer nada ... sospecho que quieres decir
Su ejemplo solo cargará la función load_my_scripts si ya existe (lo que no es así, no lo hará y si lo hiciera crearía un error)
fuente
Si, por razones de rendimiento, desea cargar jquery y otros archivos js centrales desde un CDN, asegúrese de cargar la misma versión para evitar que sucedan cosas desagradables con las funciones centrales y de complementos. Me gusta esto:
fuente
Después de verificar todos los métodos diferentes para cargar jquery (no solo en esta publicación), me di cuenta de que ninguno de ellos hace todo esto:
Hay muchas versiones alternativas que hacen algunas de estas en la lista, pero no todas, así que escribí mi versión combinando y modificando algunos de los métodos ya disponibles. Aquí está:
Para ahorrar ancho de banda y no hacer ping a Google cada vez que se vuelve a cargar la página, recuerda si Google CDN está en línea o no durante 5 minutos utilizando la API transitoria de Wordpress.
fuente