Mover jQuery al final de la página manteniendo el jQuery de WordPress

12 mar 2013, 09:35:46
Vistas: 1K
Votos: 1

Quiero mover jQuery al final de la página en mi tema, para acelerar los tiempos de carga.

Anteriormente lo hacía reemplazándolo con la versión CDN de Google pero me han dicho que eso no es recomendable.

¿Cómo puedo desregistrar y volver a registrar el script jQuery de WordPress y moverlo al final sin causar problemas?

5
Comentarios

¿Por qué? Usar el jQuery de Google romperá muchos plugins, porque funciona de manera diferente.

fuxia fuxia
12 mar 2013 09:39:23

Aquí hay una publicación sobre por qué cargar jQuery desde un CDN no es una ´buena´ idea. http://pippinsplugins.com/why-loading-your-own-jquery-is-irresponsible/

Horttcore Horttcore
12 mar 2013 09:40:01

OK, no sabía sobre los problemas de usar el CDN de Google. En su lugar, lo moveré al pie de página. Gracias.

Shaun Shaun
12 mar 2013 09:42:39

Definitivamente esto ha estado causando problemas. He recibido algunas quejas sobre esto. Resulta que el tema Optimize Press está haciendo esto......

Jesse Jesse
12 mar 2013 09:47:02

OK chicos, cambié la pregunta ya que todavía no estoy seguro de cómo hacer esto.

Shaun Shaun
12 mar 2013 09:47:03
Todas las respuestas a la pregunta 1
3

Puedes cambiarlo llamando al método add_data del objeto $wp_scripts. Este objeto contiene todos los scripts y la información sobre cómo renderizarlos. Para forzar que un script se renderice en el footer, puedes hacerlo así:

add_action( 'wp_enqueue_scripts', 'wpse8170_enqueue_scripts' );
function wpse8170_enqueue_scripts() {
    $GLOBALS["wp_scripts"]->add_data( 'jquery', 'group', 1 );
}

P.D.: No lo he probado, pero supongo que debería funcionar.

12 mar 2013 09:57:30
Comentarios

Acabo de probar esto, causó el siguiente error: Error fatal: Llamada a una función miembro add_data() en un no-objeto

Shaun Shaun
12 mar 2013 10:00:21

La última edición de toscho evita que aparezca el error pero también impide que jQuery se cargue por completo.

Shaun Shaun
12 mar 2013 11:20:52

@Shaun sí, lo siento, olvidé llamar global $wp_scripts antes de agregar los datos.

Eugene Manuilov Eugene Manuilov
12 mar 2013 11:50:37