模板文件层次结构
摘要
WordPress 使用查询字符串来决定应该使用哪个模板来显示页面。查询字符串是包含在网站每个部分的链接中的信息。它出现在初始问号之后,可能包含许多由&符号分隔的参数。
简而言之,WordPress 向下搜索模板层次结构,直到找到匹配的模板文件。要确定要使用的模板文件,WordPress:
- 将每个查询字符串与查询类型匹配,来确定用户请求的是哪种类型的页面(例如,搜索页面,类别页面等);
- 按模板层次结构确定使用哪个模板文件来显示这个页面。
- 在当前主题的目录中查找具有特定名称的模板文件,并使用层次结构指定的 第一个匹配模板文件 。
除了基本 index.php
模板文件外,我们可以自定义使用其他模板文件来显示页面。
如果 WordPress 找不到名称匹配的具体模板文件,它将跳转到层次结构中的下一个文件。如果 WordPress 还是找不到任何匹配的模板文件,最终将使用index.php
模板来显示页面。
示例
举个例子,用户在你的网站上打开了分类目录存档页面:http://example.com/blog/category/your-cat/
,WordPress 会在当前主题的目录中查找与该类别的 ID 匹配的模板文件,以生成正确的页面。更具体地说,WordPress 遵循以下过程:
- 在当前主题的目录中查找与分类 slug 匹配的模板文件。如果分类 slug 是“unicorns”,则 WordPress 会查找名为的模板文件
category-unicorns.php
。 - 如果
category-unicorns.php
不存在,并且分类的 ID 为 4,则WordPress 将查找名为的模板文件category-4.php
。 - 如果
category-4.php
不存在,WordPress 将寻找通用分类模板文件,category.php
。 - 如果
category.php
不存在,WordPress 将寻找通用存档模板archive.php
。 - 如果
archive.php
仍然还缺少,WordPress 将会使用主题 index.php 模板。
可视化概述
下图是 WordPress 模板层次结构中,调用模板文件来生成页面的顺序。
层次结构详细信息
虽然通过图表更容易理解,我们还是在下面用文字描述一下各种查询调用模板文件的顺序。
主页显示
默认情况下,WordPress 会在我们的网站首页显示网站的最新文章,这个页面称为文章索引。除此之外,选择一个静态页面作为网站首页。模板文件 home.php
用于显示文章索引,无论我们选择最新文章还是静态页面作为我们的首页。如果 home.php
不存在,WordPress 将使用 index.php
。
home.php
index.php
如果 front-page.php
存在,它将覆盖