is_front_page()不工作wordpress

时间:2011-09-07 21:44:52

标签: javascript wordpress scripting blogs

当我在首页时,我正试图从“functions.php”加载一个脚本 我在阅读选项中设置了一个名为“home”的静态页面 主页正确加载“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'); 
}

为什么不按预期加载?这里发生了什么?

4 个答案:

答案 0 :(得分:1)

$isfrontpage = false;   
if( is_front_page() || is_home() ) {    

    $isfrontpage = true;    

} else {

    $current = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    $site = get_site_url();
    $site = str_replace('http://', '', $site);
    $site = str_replace('https://', '', $site);
    $site = str_replace('www', '', $site);

    if( $site == $current || $site . '/' == $current ){
        $isfrontpage = true
    }

}

答案 1 :(得分:0)

来自Codex -

  

当显示主博客页面时,它返回TRUE   设置 - >阅读 - >首页显示设置为“您的最新帖子”,   或者当设置为“静态页面”并且“Front Page”值为   当前页面正在显示。

将其设置为使用首页模板并不会使其成为首页。当上述任一条件成立时,它是首页。因此,对于您创建的此页面,两者都必须为false。

另外,这是仅仅包含在functions.php的内联中,还是实际上是在挂头?

答案 2 :(得分:0)

is_front_page();将无法在functions.php中正常工作,因为在能够检测到“front_page.php”之前,functions.php已初始化

答案 3 :(得分:0)

这是排队脚本的正确方法:

<?php

add_action( 'wp_enqueue_scripts', 'my_custom_enqueue_scripts', 5 );

function my_custom_enqueue_scripts(){
    wp_register_script('nivoslider', get_bloginfo('template_url').'/js/libs/nivoslider.js', false, false, true);

    if (is_front_page()) {   
       wp_enqueue_script('nivoslider'); 
    }
}

?>