首页 > 主题开发 > 模板层次 > WordPress模板层次02:模板层次结构和原理
2018
02-16

WordPress模板层次02:模板层次结构和原理

模板层次结构页面

首先,打开一个网站 wphierarchy.com,它是介绍关于模板层次结构的页面。它可以让你看到整个WordPress模板层次结构。这个结构的核心:简单来说就是备胎的思想。

在这里,我随意点击一个模板文件:

template hierarchy xuhss.com01 - WordPress模板层次02:模板层次结构和原理

就可以到达WordPress官方文档关于这个模板文件的详细讲解页面

整个模板层次结构流程

以WordPress网站上的Singular Page为例。它是单一页面的意思。

template hierarchy xuhss.com02 - WordPress模板层次02:模板层次结构和原理

首先,当你编辑发布一个页面的时候,WordPress将会弄清楚:它是一个单独的页面(Single Post Page),还是静态页面(Static Page)?

template hierarchy xuhss.com03 - WordPress模板层次02:模板层次结构和原理

假设这是一个静态页面(Static Page)。WordPress又会判断:它使用的是自定义模板(Custom Template),

还是默认模板(Default Template)?

  • 假设是自定义模板(Custom Template),WordPress就会查找:自定义格式(Custom.php)的模板文件 。
  • 假设是默认模板(Default Template),WordPress就会查找:固定格式(page-$slug.php/page-$id.php)的模板文件 。

template hierarchy xuhss.com05 - WordPress模板层次02:模板层次结构和原理

那么,如果以上这些自定义的页面都没有在主题中给定,WordPress将会寻找备份的page.php模板文件。

template hierarchy xuhss.com06 - WordPress模板层次02:模板层次结构和原理

如果page.php还是没有给出的话,那么关于这个页面,WordPress将会默认使用index.php作为模板。

备胎的思想

整个流程体现出了一种备胎的思想。也就是说,WordPress会首先考虑的是初恋:如果没有找到初恋(PageTemplate),就找备胎1(Page.php)。最后是最通用的备胎(index.php)。

因此,如果主题中,没有这些橙色的或自定义的特定模板文件,那么WordPress将默认使用index.php文件来断后。

Archive模板层次结构

Archive模板层次结构也是一样的道理:

template hierarchy xuhss.com07 - WordPress模板层次02:模板层次结构和原理

比方说,我们有一个分类页面(Archive Page),按日期分类(Date Archive)。而且我们想要分年,月,日。那么WordPress会首先查找一个名为date.php的模板。如果这个date.php不存在,那么WordPress将会查找一个名为archive.php的模板。

archive.php不存在的话,那么最终它将回到使用最终的备胎: index.php 模板。

在这个流程中,可以再次看到WordPress模板备胎的思想。

原理总结

所以,总的来说,如果没有date.php或archive.php,我们也没有任何自定义页面模板(Page template),那么,不管是分类页面(Archive Page)还是单一页面(Singular Page)都将默认使用 index.php 模板。

实际上,设计一个可以适用于所有类型页面的单一模板是非常困难的,我们通常会使用archive.php,single.php,page.php,home.php这些模板文件,以及其他一些更具体的自定义类型模板,而不会到index.php这一层

 

最后编辑:
作者:虚幻
这个作者貌似有点懒,什么都没有留下。

留下一个回复