is_home() vs is_archive()

时间:2014-08-13 作者:Jeff

我已经将我的首页设置为静态首页“主页”,而我的帖子页面设置为我的“新闻”页面。

在我的新闻页面上,is_home() 退货1 如预期,但is_archive() 退货0. 我希望它会回来1 而且的WP文档is_archive() 这对我来说并不清楚。上面写着,

检查是否显示任何类型的存档页面。存档是一个类别、标记、作者或基于日期的页面。

我希望这是真的。有些东西与我无关。

两者的区别是什么is_home()is_archive()?

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

要正确理解差异,您必须深入了解Wordpress的核心

  • is_archive() (定义见wp-includes/query.php#L140) 检查任何类型的存档页。这些存档页在中定义WP_Query 中的类wp-includes/query.php#L1615 1615线和1616线

    1615    if ( $this->is_post_type_archive || $this->is_date || $this->is_author || $this->is_category || $this->is_tag || $this->is_tax )
    1616    $this->is_archive = true;
    
  • is_home()(定义见wp-includes/query.php#L443) 当您在主页上时,将返回true,即当任何条件/页面返回false时,如WP_Query 中的类wp-includes/query.php#L1648 第1648和1649行

    1648    if ( !( $this->is_singular || $this->is_archive || $this->is_search || $this->is_feed || $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_comments_popup || $this->is_robots ) )
    1649    $this->is_home = true;
    
    至于你的问题,无论何时设置静态首页,Wordpress都会使用首页。php,第页。php或任何其他自定义页面模板。此处使用的适当条件是is_front_page()

    对于设置为博客页面的页面,Wordpress使用主页。php或索引。php。这是您博客的实际主页,而不是存档页。is_home() 将返回true和is_archive() 将按预期返回false

    进一步阅读:

SO网友:Amirmasoud

如果你有家。php/索引。主题上的php这是您的第一个页面,此页面中的函数is\\u home()return true。

但当你存档时。php函数is\\u archive()将返回true。档案文件php用于显示一年、一个月或一天的帖子。您可以通过将存档的小部件添加到站点来测试存档功能。

SO网友:Cayce K

为了扩展@AmirMasoud的回答,当你在新闻提要上时,它实际上并没有显示类别、标签、作者等特定的帖子集。

在您的选项中,还有一个可以定义家的地方。该页可能超出了使用索引的范围。php和将是唯一返回1作为is_home().

归档可以通过许多不同的方式进行设置。查找模板层次结构以更好地了解主页、存档和其他页面文件选项。

结束

相关推荐