模板层次结构:与index.php、front-page.php、home.php混淆

时间:2013-08-16 作者:Mayeenul Islam

我真的很困惑index.php, home.phpfront-page.php. 在很多情况下,即使我index.php, 我将其覆盖为front-page.php. 但最近,我意识到home.php.

两者之间的区别是什么home.phpindex.php?home.php 而不是index.php?front-page.php?front-page.php 那么具体的任务是什么index.php 那是为了我吗Template Hierarchy 在法典中。请不要把我的问题和页面模板混在一起,我理解它们,阿勒姆·杜利拉。

6 个回复
最合适的回答,由SO网友:Rarst 整理而成

头版逻辑是WordPress中最令人困惑的功能之一,非常难以解释和总结。正如之前评论中提到的,我耗费了大量的时间来整理我的front page logic cheat sheet 为了它。

但由于这是一个流行的帖子,让我试着回答你提出的那些非常具体的问题。

两者的区别是什么home.phpindex.php?

home.php 是帖子索引的模板(本机帖子类型的归档,这是WP中的一个特例)。WP将尝试查找帖子索引,无论它们是显示在网站的根目录中还是显示在专门的帖子页面上。

index.php 是catch–all模板。它是模板层次结构所有分支中的最终选择,并将在没有其他适合的情况下对存档和单一视图进行选择。

只有帖子索引可以使用home.php, 但是,所有其他上下文可能也将使用index.php.

使用a的理想条件是什么home.php 而不是index.php

您使用home.php 自定义帖子索引。

您使用index.php 在主题中提供最通用的模板,适合显示任何内容。

某些主题选择为空index.php 并确保他们对所有可能的案例都有更具体的模板,这样就不必使用它了。

使用a的理想条件是什么front-page.php?

front-page.php 如果启用,则用于根或静态首页的帖子索引。

它是一个高优先级的模板,所以如果主题有它,您就不能为静态首页选择任意模板。由于这个原因,它几乎从未被列入公开发布的主题(这是正确的)。

它的最佳用途是在私人项目中,因为它比页面模板更容易配置。

当我使用front-page.php 那么具体的任务是什么index.php 那是为了我吗?

index.php 对于所有其他情况,它仍然是一个包罗万象的模板。

如果您使用静态首页(其中front-page.php 将应用)然后您的帖子页面将尝试使用home.php 然后index.php.

SO网友:Chip Bennett

这个front-page.php 文件是site front page 样板无论您的网站是否get_option( \'show_on_front\' ) 设置为pageposts.

这个home.php 模板文件是blog posts index 样板它将始终用于显示您的博客文章索引,无论博客文章索引是显示在网站首页还是其他页面上。

如果两者front-page.phphome.hpp 存在,以及get_option( \'show_on_front\' ) 设置为posts (即,网站首页显示博客文章索引),以及front-page.php 文件将优先于home.php 文件

这个index.php 文件是default fallback template 对于中的所有上下文Template Hierarchy. 仅当当前上下文中不存在更具体的模板文件时,才使用它。

的模板层次结构site front page 是:

  • front-page.php\'page\' == get_option( \'show_on_front\' ): 页面层次结构\'posts\' == get_option( \'show_on_front\' ): 博客帖子索引层次结构blog posts index 是:

    • home.php
    • index.php
    的模板层次结构pages 是:

    自定义页面模板page-{slug}.php

  • page-{id}.php
  • page.php
  • index.php

SO网友:Pat J

所有这些都来自于对Template Hierarchy.

home.php 在以下情况下使用:

您网站的首页设置为显示帖子列表,或A static front page is set, 并且,访问者会进入您定义为“帖子列表”的页面(例如,http://example.com/blog/)home.php 文件如果未满足最后一个条件,即没有home.php 主题中的文件index.php 将加载。

front-page.php 将在以下情况下使用:

  • A static front page is set, 访问者会访问您定义为“静态主页”的页面(即,http://example.com/), 主题有front-page.php 文件
如果未满足最后一个条件,即没有front-page.php 主题中的文件index.php 将加载。

总之,如果要自定义帖子列表,请使用home.php.
如果要自定义静态主页,请使用front-page.php.

SO网友:asked Feb 12 \'12

简而言之:

  • index.php 仅为回退模板,以防找不到合适的模板home.php 用于博客(最近发布的文章列表)
  • front-page.php 用于登录页index.php 模板index.php 模板文件是回退模板。当没有其他更合适的模板可用时,将其用作最后手段。例如,如果您没有front-page.php 也不是ahome.php 然后index.php 将使用。失踪也是如此archive.phpsingle.php 等等

    关于front-page.php VS公司home.php

    现在front-page.phphome.php 模板是front-page.php 顾名思义,被用作网站的主要首页,而home.php 旨在成为Blog 部分

    我的网站登录页将使用什么模板

    Thefront-page.php 模板(如果存在)将用于网站的主要首页(例如。http://www.example.com/). 如果不存在,则home.php 将改用。如果front-page.phphome.php 缺少模板文件,则index.php 将使用回退模板。

    我的博客页面将使用什么模板

    WordPress允许您在与登录页不同的页面上创建一个“博客”页面(将列出最近的帖子)(例如:。http://www.example.com/blog/). 因此,如果您的站点上出现这种情况,那么博客页面将始终使用home.php 样板如果home.php 不存在那么index.php 将使用回退模板。

    如何配置登录页和博客页

    要配置要在首页上显示的内容,请转到WordPress Admin, 在下面Tools > Reading, 在那里,您可以配置“首页显示”以显示静态页面或最新帖子。

    如果您选择在首页上显示静态页面,那么您还可以设置要用作博客页面占位符的页面(将使用home.php 模板):

    enter image description here

SO网友:samix73

摘自Wordpress template hierarchy

Home Page display

默认情况下,WordPress设置站点主页以显示最新的博客文章。此页面称为博客帖子索引。您还可以将日志设置为显示在单独的静态页面上。模板文件主页。php用于呈现博客帖子索引,无论它是用作首页还是单独的静态页面。如果在家。php不存在,WordPress将使用索引。php。

  1. home.php
  2. index.php
注意:如果是头版。php存在,它将覆盖主目录。php模板。

Front Page display

头版。php模板文件用于呈现站点的首页,无论首页是显示博客帖子索引(如上所述)还是静态页面。首页模板优先于博客文章索引(home.php)模板。如果是头版。php文件不存在,WordPress将使用主页。php或页面。php文件取决于设置中的设置→ 阅读如果这两个文件都不存在,它将使用索引。php文件。

1. front-page.php – 用于设置的首页显示部分中设置的“您的最新帖子”或“静态页面”→ 阅读

2. home.php – 如果WordPress找不到首页。php和“你的最新帖子”设置在首页显示部分,它会在首页中查找。php。此外,WordPress将在front page displays部分设置posts页面时查找此文件。

3. page.php – 当在首页显示部分中设置“首页”时。

4. index.php – 如果在首页中设置了“your latest posts”,则会显示主页以外的部分。php不存在,或者设置了front page时为page。php不存在。

正如您所看到的,WordPress的路径有很多规则。使用上面的图表是确定WordPress显示内容的最佳方法。

模板层次结构图:Wordpress template hierarchy

SO网友:henrywright

我决定在设置了各种首页显示选项后,测试以下每个页面使用的模板。

示例。net示例。net/home示例。结果很长,但可以作为参考或备忘。

Front page displays

资料来源:How do the front-page.php and home.php templates differ in WordPress?

Note to editor: 我试图在这里复制和粘贴表格,但需要标记格式,而不是HTML。如果可以,请转换为降价。

结束

相关推荐