什么时候使用is_home()和is_front_page()?


66

我发现is_front_page当我查看主页并在其中分配了单个粘性帖子时,似乎返回true。

通过“设置”>“阅读”将页面分配为静态首页时,它也会返回true 。

为什么我要使用is_home()

Answers:


66

is_front_page()如果用户位于“设置”->“阅读”->您的主页上显示为首页的帖子页面或帖子页面上,则返回true

因此,如果您设置about us为首页,那么只有显示“ 关于我们”页面时,此条件才为真。

is_home() 在帖子列表页面上时,返回true,这通常是显示最新10条帖子的页面。

如果在设置你的主页会显示在默认的左则主页将返回既真is_front_page()is_home()

使用示例is_home()

  • 您已将帖子页面设置为名为新闻的页面。
  • 用户在那里导航,并且您想要在标题中显示其他导航
  • 您可以is_home()用来做到这一点。

18
究竟。我进行如下区分:is_front_page()查看网站首页(无论显示博客文章索引还是静态页面)时is_home()返回true ,而查看博客文章索引(无论显示在首页还是静态页面上)时返回true 。
Chip Bennett

3

我发现了这一点is_home()is_front_page()但并未实现多站点的期望。我使用内置的PHP好东西的解决方法:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

如评论中所述,此方法不适用于安装在Web根目录的子目录中的WP实例。自行决定使用。


请详细说明它无法实现预期的效果。
克里斯汀·库珀

在多站点主网站,如果你使用任何形式的is_home()is_front_page()在静态或博客的FrontPage的功能都将返回false。
迪伦·皮尔斯

1
我只是在多站点环境中测试了这两个条件,并且当我访问相应/页面时都返回了true 。
克里斯汀·库珀

我正在将wordpress VVV框与多站点插件一起使用:github.com/Varying-Vagrant-Vagrants/vvv-multisite 也许上面配置有?如果有人遇到类似情况,则只留下解决方法的答案。
迪伦·皮尔斯

您的代码几乎是完美的,唯一的事情是:如果WP安装在子目录中,例如/ blog或/ wordpress,该怎么办。比这将毫无用处。
Remzi Cavdar '18

1

你想使用is_home()的时候要检查,如果用户正在浏览您的博客文章(通常设置为每页显示10个职位)的列表。如果您home.php的主题中有一个文件,则当is_home()条件为true 时将显示该文件。

下面可以去除可能有些混乱,以及:当is_front_page()is_home()条件,为真,模板front-page.php会被用来代替home.php

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.