is_front_page() 不工作 WordPress

发布于 2024-12-03 14:21:49 字数 376 浏览 0 评论 0原文

当我位于首页时,我试图从“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'); 
}

为什么没有按预期加载?这里发生了什么事?

I'm trying to load a script from "functions.php" just when i'm in the front page.
I set a static page called "home" in the reading options.
The home page loads the "front-page.php" template correctly but the conditional script loading doesn't work.

This is what I have in my "functions.php" file:

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

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

Why isn't this loading as expected? What's happening here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

囚你心 2024-12-10 14:21:49
$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
    }

}
$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
    }

}
我不吻晚风 2024-12-10 14:21:49

来自 法典 -

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

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

另外,这只是包含在functions.php中还是你实际上挂在了头部?

From the Codex -

It returns TRUE when the main blog page is being displayed and the
Settings->Reading->Front page displays is set to "Your latest posts",
or when is set to "A static page" and the "Front Page" value is the
current Page being displayed.

Just setting it to use your front page template does not make it a front page. It is the front page when either of the conditions above are true. Therefore both must be false for this page you created.

Also, is this just included inline with functions.php or are you actually hooking into the head?

久夏青 2024-12-10 14:21:49

is_front_page(); 不会按预期在functions.php中工作,因为functions.php在能够检测到您的“front_page.php”之前就已初始化

is_front_page(); will not work in functions.php as expected since the functions.php initializes before its able to detect your "front_page.php"

你是年少的欢喜 2024-12-10 14:21:49

以下是对脚本进行排队的正确方法:

<?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'); 
    }
}

?>

Here's the right way to enqueue scripts:

<?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'); 
    }
}

?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文