web-dev-qa-db-fra.com

is_front_page () ne fonctionne pas

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');
1
elclanrs

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.

2
Rarst

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.

0
tollmanz