¿Cómo puedo "desenganchar" / desregistrar jQuery para que no se llame como parte de wp_footer () ;?

2

Necesito "desenganchar" jQuery de mi wp_footer() ... se está llamando automáticamente y estoy buscando algo que pueda agregar a functions.php que evita que se lo llame por segunda vez en el pie de página (ya que Necesito llamarlo en el encabezado)

no hay comentarios editoriales sobre por qué es mejor llamar en el pie de página

    
pregunta Brian 01.02.2012 - 04:16

2 respuestas

6

No desea anular el registro del script; eso haría que no esté disponible para ser puesto en cola. En su lugar, desea quitar la cola de la secuencia de comandos.

Tienes dos opciones:

  1. Si conoce la función de devolución de llamada a través de la cual se llama a wp_enqueue_script( 'jquery' ) , simplemente puede llamar a remove_action( 'wp_footer', 'callback_function_name' )
  2. Lo más probable es que no conozca la función de devolución de llamada (o jQuery se pondrá en cola como una dependencia de otro script), en cuyo caso, puede sacar la cola directamente, lo que haría a través de wp_dequeue_script() .

por ejemplo

function theme_slug_dequeue_footer_jquery() {
     wp_dequeue_script( 'jquery' );
}
add_action( 'wp_footer', 'theme_slug_dequeue_footer_jquery', 11 );

Nota: que la prioridad es probablemente bastante importante, ya que deberá asegurarse de que su salida de la cola se active después del enqueue call.

Editar

  

Estoy personalizando este tema desde el tema predeterminado de TwentyEleven. Parece que el tema en sí es el que enlaza WordPress y no un complemento. Busqué en las funciones predeterminadas .php y no veo ningún wp_enqueue_script () allí. ¿Hay algún otro lugar que debería buscar?

¿Está viendo por casualidad la Plantilla de escaparate (es decir, showcase.php )? Tenga en cuenta que encola un script personalizado:

wp_enqueue_script( 'twentyeleven-showcase', get_template_directory_uri() . '/js/showcase.js', array( 'jquery' ), '2011-04-28' );

Agrega jQuery a la matriz de sus dependientes, lo que significa que WordPress encolará primero jQuery, y luego enqueue twentyeleven-showcase . Por lo tanto, esa podría ser la fuente de la misteriosa puesta en cola de jQuery.

(También hay una llamada wp_enqueue_script() en /inc/theme-options.php , pero no creo que una esté afectando su puesta en cola de scripts de usuario).

    
respondido por el Chip Bennett 01.02.2012 - 04:49
1

la función para anular el registro de cualquier script es:

wp_deregister_script('jquery');

Pero el problema que tiene es diferente, si lo que entiendo correctamente, tiene jQury incluido DOS VECES, una vez en el encabezado y una vez en el pie de página. Esta es una función de plugin o tema que se ejecuta de forma incorrecta; se le pide específicamente que imprima en pie de página. Es posible que desee identificar mejor el problema, ya que puede causar otros problemas ...

De todos modos, los ganchos de ejemplo son: (un init, un print_scripts)

function dl_register_common_js() {
wp_deregister_script('jquery');
}
//add_action('init', 'dl_register_common_js'); // will deregister from head
add_action('wp_print_scripts', 'dl_register_common_js');
    
respondido por el krembo99 01.02.2012 - 04:40

Lea otras preguntas en las etiquetas