is_front_page() not working

时间:2011-09-07 作者:elclanrs

我正在尝试从加载脚本functions.php 就在我登上头版的时候。我在阅读选项中设置了一个名为“主页”的静态页面。

主页将加载front-page.php 模板正确,但条件脚本加载不起作用。

这就是我的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\'); 
}
为什么加载不符合预期?这里发生了什么事?

这是我的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\');

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

如果您直接在functions.php 你做错了。条件标记还为时过早。

这应该连接到wp_enqueue_scripts, 看见wp_enqueue_script() 文档。

SO网友:tollmanz

尝试使用is_home() 而不是is_front_page. 两者之间有细微的区别(http://nspeaks.com/1069/difference-between-is_home-and-is_front_page/),这可能是你遇到困难的原因。

结束

相关推荐

有条件地加载快捷码的JavaScript/CSS

我发布了一个插件,该插件创建了一个短代码,并要求在包含该短代码的任何页面上加载一个JavaScript文件和一个CSS文件。我可以在所有页面上加载脚本/样式,但这不是最佳做法。我只想在调用短代码的页面上加载文件。我找到了两种方法,但都有问题。Method 1 在shortcode处理程序函数内将标志设置为true,然后在wp_footer 回调。如果这是真的,它使用wp_print_scripts() 加载JavaScript。问题是它只适用于JavaScript,而不适用于CSS,因为CSS应该在内部声