【问题标题】:detecting if it's the home page in functions.php检测它是否是functions.php中的主页
【发布时间】:2014-09-05 19:36:30
【问题描述】:

我正在尝试检测当前页面是否是我全新安装的 WordPress 的主页。

以下代码的 sn-p 在 page.php 中有效,但在 functions.php 中无效。如何在 WordPress 的 functions.php 中检测主页?

if (is_front_page()) {
    echo 'test';
}

我知道我可以使用$_SERVER['REQUEST_URI'],但我认为应该有更好的方法来做到这一点。

在 wordpress 设置 > 阅读中,我的主页有一个静态页面。 is_home() 在我的 page.php 中不起作用,但 is_front_page() 在我的 page.php 中起作用。这两个函数在我的functions.php中都不起作用

【问题讨论】:

  • 没有任何额外的代码很难说。您能否在functions.php 中提供更多您正在使用的代码?
  • functions.php 中的原始代码在 WordPress 开始计算它将使用哪个页面/模板之前运行。你到底想达到什么目的?您可能想要挂钩到一个操作或过滤器,以便您的测试代码 is_front_page 设置为稍后运行,此时 WordPress 已经设置了足够的东西来回答这个问题......来自the notes:“@ 987654326@ 使用全局 $wp_query WP_Query 对象。在 parse_query 操作之前 is_home 不可用。”因此,您至少需要推迟运行它直到那么晚。
  • 我只想在functions.php中为主页加载一些脚本和css。这就是我想要达到的目标。

标签: php wordpress


【解决方案1】:

只需使用is_home() 条件标签即可检查主页

编辑

从你的 cmets 来看,你正在尝试的东西永远不会奏效。您需要将代码添加到函数中,然后将其挂钩到某个挂钩

<?php
function my_custom_function() {
    if(is_front_page()){ 
        echo "home"; 
    }else{ 
        echo "not home"; 
    }
}
add_action( 'wp_head', 'my_custom_function' );

您还在评论中声明您只想在首页加载样式和脚本。您可以尝试以下方法

<?php
function my_custom_function() {
    if(is_front_page()){ 
       //Load your styles and scripts
    }
}
add_action( 'wp_enqueue_scripts', 'my_custom_function' );

【讨论】:

  • 在wordpress设置>阅读中,我的主页有一个静态页面。 is_home() 在我的 page.php 中不起作用,但 is_front_page() 在我的 page.php 中起作用。这两个函数在我的空函数中都不起作用。php
  • 谢谢。 is_front_page() 在 functions.php 中的 wp_enqueue_scripts 操作中工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多