J'essaie de charger un script à partir de functions.php
juste quand je suis sur la première page. Je mets une page statique appelée "maison" dans les options de lecture.
La page d'accueil charge le modèle front-page.php
correctement, mais le chargement du script conditionnel ne fonctionne pas.
Voici ce que j'ai dans mon fichier functions.php
:
wp_register_script('nivoslider', get_bloginfo('template_url').'/js/libs/nivoslider.js', false, false, true);
if (is_front_page()) {
wp_enqueue_script('nivoslider');
}
Pourquoi ce chargement n'est-il pas comme prévu? Qu'est-ce qu'il se passe ici?
Ceci est ma fonction init_scripts
:
function init_scripts() {
if (!is_admin()) {
/* Modernizr
*/
wp_register_script('modernizr', get_bloginfo('template_url').'/js/libs/modernizr.js');
/* jQuery
*/
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false, false, true);
/* Nivo Slider
*/
wp_register_script('nivoslider', get_bloginfo('template_url').'/js/libs/nivoslider.js', false, false, true);
/* Custom scripts
*/
wp_register_script('plugins', get_bloginfo('template_url').'/js/plugins.js', false, false, true);
wp_register_script('script', get_bloginfo('template_url').'/js/script.js',false, false, true);
wp_enqueue_script('modernizr');
wp_enqueue_script('jquery');
wp_enqueue_script('plugins');
wp_enqueue_script('script');
if (is_front_page()) {
wp_enqueue_script('nivoslider');
}
}
}
add_action('init', 'init_scripts');
Si vous faites cela directement dans functions.php
, vous le faites mal. Il est trop tôt pour que les balises conditionnelles fonctionnent.
Cela devrait être relié à wp_enqueue_scripts
, voir wp_enqueue_script()
docs.
Essayez d’utiliser is_home()
au lieu de is_front_page
. Il existe une différence subtile entre les deux (http://nspeaks.com/1069/difference-between-is_home-and-is_front_page/), ce qui pourrait expliquer vos difficultés.