web-dev-qa-db-fra.com

jquery ne se charge pas en pied de page

Je voulais déplacer jQuery au pied de page du site, mais cela ne fonctionne pas. Je l'ai essayé avec le code suivant.

Comme vous pouvez le constater, j’ai quelques autres scripts et ils se chargent correctement dans le pied de page. Seulement jquery ne fonctionnera pas.

//This adds our JavaScript Files
function wel_adding_scripts() {

wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js', '', '2.1.1', true); 
wp_enqueue_script( 'jquery');

wp_register_script('jquery.mixitup', get_template_directory_uri() . 'js/jquery.mixitup.min.js','','1.1', true);
wp_enqueue_script('jquery.mixitup');

wp_register_script('headroom', get_template_directory_uri() . 'js/headroom.min.js','','1.1', true);
wp_enqueue_script('headroom');
}
add_action( 'wp_enqueue_scripts', 'wel_adding_scripts' ); 
1
hazelnut

Notez que si un script de l’en-tête a besoin de jQuery, il sera remplacé par un en-tête, qu’il soit modifié ou non pour être mis en file d'attente pour le pied de page.

Ainsi, bien que le modifier pour qu'il soit mis en file d'attente pour le pied de page ait du sens, cela fonctionne rarement lorsque beaucoup de scripts sont en cours.

6
Rarst

Voici le problème

Si vous essayez d'enregistrer ou de mettre en file d'attente un descripteur déjà enregistré avec différents paramètres, les nouveaux paramètres seront ignorés. Utilisez plutôt wp_deregister_script () et enregistrez le script à nouveau avec les nouveaux paramètres.

Vous devrez d'abord désenregistrer jQuery, puis l'enregistrer à nouveau, mais attention car la chaîne vide n'est pas ce que vous devriez mettre à la place du paramètre deps. IT devrait être un tableau vide.

Comme ça:

     wp_register_script('jquery',
 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js',
     array() , '2.1.1', true); 
1
Tomás Cot

Correction: je l'ai fait de la bonne façon, tout le temps. Maintenant, j’ai trouvé que jquery était désenregistré dans le fichier de thèmes header.php. Je l'ai supprimé et cela fonctionne maintenant.

0
hazelnut