web-dev-qa-db-fra.com

Déplacement de jQuery vers le pied de page sans utiliser le désinscription dans WordPress

Bonjour, je cherchais un moyen de déplacer wordpress default jQuery vers le pied de page et j’ai vu cette réponse: https://wordpress.stackexchange.com/a/225936/50584

J'ai donc essayé cette approche dans le fichier functions.php de mon thème enfant:

add_action( 'wp_enqueue_scripts', function() {
    // Move jQuery to the footer
    wp_scripts()->add_data( 'jquery', 'group', 1 );
    wp_scripts()->add_data( 'jquery-core', 'group', 1 );
    wp_scripts()->add_data( 'jquery-migrate', 'group', 1 );
});

Mais il ne pousse pas jquery au pied de page. Toute idée les gars pourquoi cela se passe? Je veux éviter les méthodes de-register & re-register.

Toute aide sera grandement appréciée.


Mise à jour importante: Depuis WP v3.9, il n’est pas possible de placer des scripts jquery dans votre pied de page au lieu d’utiliser l’option de-register & re-register. C'est tout simplement impossible à faire, comme l'a souligné l'auteur ci-dessous.

3
iSaumya

Vous devriez utiliser le param $scripts du hook wp_default_scripts. Dans ce hook, tous les scripts par défaut, ainsi que jQuery, ont été mis en file d'attente et vous pouvez modifier ses données, comme le groupe de chargement en bas de page.

add_action( 'wp_default_scripts', '_print_jquery_in_footer' );
function _print_jquery_in_footer( $scripts ) {

    if ( ! is_admin() )
        $scripts->add_data( 'jquery', 'group', 1 );
}

Également dans le style de code le plus récent via une fonction anonyme, comme votre exemple de question; possible depuis php 5.3:

add_action(
    'wp_default_scripts',
    function( $scripts ) {
        if ( ! is_admin() )
            $scripts->add_data( 'jquery', 'group', 1 );
    }
);

Edit : Cela ne fonctionnera qu'avec les versions de WordPress inférieures à 3.9!

2
bueltge