wp_enqueue_script en el pie de página

2 minutos de lectura

Tener problemas para poner en cola un script en el pie de página.

wp_deregister_script('jquery');
wp_enqueue_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), false, true);

Aquí está la definición de wp_enqueue_script:

wp_enqueue_script( 
     $handle
    ,$src
    ,$deps
    ,$ver
    ,$in_footer 
);

Como puede ver, estoy configurando $in_footer en verdadero. Esto no funciona para mi. Sin ese argumento, funciona bien y lo coloca en header.php. ¿Por qué no funciona con $in_footer?

De forma predeterminada, los JavaScripts predeterminados de WordPress no se moverán al pie de página, una solución alternativa es agregar su ruta:

wp_enqueue_script('jquery','/wp-includes/js/jquery/jquery.js','','',true);

Ver publicación detallada sobre esto

  • usando ambos: true, $in_footer = true funciona para mí, pero no estoy seguro de por qué. Cuando elimino el primer verdadero, no funciona, pero usar ambos juntos sí.

    -Nathaniel Flick

    16 mayo 2018 a las 20:02

Asegúrate de tener el wp_footer() justo antes de la </body> etiqueta. Ver el parámetro $in_footer para más información. También debe llamar a esto antes de que se ejecute wp_head. Prueba también a usar esta acción.

add_action('wp_enqueue_scripts', 'add_scripts_to_pages');

Otra cosa a intentar es usar NULL como 3er y 4to parámetros.

Como complemento a la respuesta de @Nick;

si tienes un problema de PHP antes wp_footer() no podrá ver su script en el pie de página. La fuente es https://wordpress.org/support/topic/enqueuing-scripts-in-footer-does-not-working-with-wordpress-36.

avatar de usuario
Salsa de código

Para continuar con la respuesta de Nick, solo quería agregar un ejemplo. Agregue los 5 parámetros para la función wp_enqueue_script y luego el script se carga en el pie de página. Agregar NULL en lugar de dejar los parámetros en blanco funciona aquí para $deps y $ver.

Formato de referencia:

wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

Ejemplo general:

wp_enqueue_script('custom-handle-name', get_template_directory_uri() . '/custom-src.js', NULL, NULL, true );

Tu ejemplo:

wp_enqueue_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', NULL, NULL, true);

Fuente:
https://developer.wordpress.org/reference/functions/wp_enqueue_script/

¿Ha sido útil esta solución?