J'ai besoin de "décrocher" jQuery de ma wp_footer()
... il est appelé automatiquement et je cherche quelque chose que je puisse ajouter à functions.php qui l'empêche d'être appelé une seconde fois dans le pied de page (car je dois l'appeler dans l'en-tête)
s'il vous plaît pas de commentaires éditoriaux sur pourquoi il est préférable d'appeler dans le pied de page
Vous ne voulez pasannuler l'enregistrementle script; cela feraitindisponibleêtre mis en file d'attente. Vous voulez plutôtdequeuele script.
Vous avez deux choix:
wp_enqueue_script( 'jquery' )
est appelée, vous pouvez simplement appeler remove_action( 'wp_footer', 'callback_function_name' )
.wp_dequeue_script()
.par exemple.
function theme_slug_dequeue_footer_jquery() {
wp_dequeue_script( 'jquery' );
}
add_action( 'wp_footer', 'theme_slug_dequeue_footer_jquery', 11 );
Remarque: quepriorityest probablement assez important, car vous devez vous assurer que votredequeueappel est déclenchéaprèsleenqueuecall.
Je personnalise ce thème à partir du thème par défaut de TwentyEleven. Il semble que c'est le thème lui-même qui accroche WordPress et non un plugin. J'ai regardé dans le fichier functions.php par défaut et je ne vois pas de wp_enqueue_script () dans ce fichier. Y a-t-il un autre endroit où je devrais regarder?
Est-ce que vous visualisez par hasard le modèle de vitrine (c'est-à-dire showcase.php
)? Notez qu'il met en file d'attente un script personnalisé:
wp_enqueue_script( 'twentyeleven-showcase', get_template_directory_uri() . '/js/showcase.js', array( 'jquery' ), '2011-04-28' );
Il ajoute jQuery à son tableau de dépendants, ce qui signifie que WordPress mettra d'abord en file d'attente jQuery, puisthen/ en file d'attente twentyeleven-showcase
. Donc, cela pourrait être la source de la mystérieuse file de mise en file d'attente de jQuery.
(Il y a aussi un appel wp_enqueue_script()
dans /inc/theme-options.php
, mais je ne pense pas que cela aurait un impact sur votre mise en file d'attente de script front-end.)
la fonction pour annuler l'enregistrement d'un script est la suivante:
wp_deregister_script('jquery');
Mais le problème que vous avez est différent, si je comprends bien - jQury est inclus DEUX FOIS, une fois sur l’en-tête et une fois sur le pied de page. Il s’agit d’un plugin ou d’une fonction de thème mal exécutés - demandant spécifiquement d’imprimer en pied de page .. Vous voudrez peut-être mieux identifier le problème, car il peut causer d’autres problèmes ...
Quoi qu'il en soit, les exemples de points d'ancrage sont les suivants: (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');