WordPress 主题文件的执行顺序及其层次结构详解
本文将介绍 WordPress 主题文件执行的顺序和文件的层次结构。就是当你访问一个页面时,我们要看看有哪些模板文件被执行。我们都知道单篇日志是用 single.php 解析内容的。 单页面是用page.php 来解析的。但 WordPress 将根据各种实际情况来寻找不同的模板文件,因此这里我们就要看看这是如何工作的。
我们首先应该清楚这一点,没有 index.php 和 style.css 文件,你的主题就已经不再是一个有效的WP主题,所以理所当然,如果你只有这两个文件,每一个网页被访问时 WP 都将试图加载 index.php。各位客观且快速浏览一眼下面这个结构图,来看看我所指的:
注意一下每个页面类型的执行流程都将在 index.php 终结。这就是为什么 index.php 是每一个 WordPress 主题所必须的文件。如果我们在WP主题中遗漏任何其他文件,例如:如果没有search.php 文件,WP会自动调用 index.php。
现在让我们来看看一些执行顺序的细节问题,我要向你们展示WP在你当前活动主题文件夹中搜索文件的流程,当你打算从现在开始创造一个 WordPress 主题的话,我希望这将会是有用的,我将会向你展示每一类型的文件执行的层次。
首页
对于每一个网站,这是第一也是最重要的一个页面。所以 WP 提供了极大的范围来让你定制这个页面。让我们看看这个用于显示首页的文件的层次。
- front-page.php
- home.php
- index.php
当客户端请求主页时,WP将搜索 front-page.php。 如果不存在,它将会使用 home.php。如果 home.php 存在它会用到它。否则,它会默认采用 index.php。
单篇日志
- single-[post-type].php
- single.php
- index.php
只要你需要,WordPress 可以有各种日志类型。这将会更容易使得所有/一些日志类型可以有不同的设计。默认情况下 post 是 WP 主要和默认的日志类型。举例来说,,如果你的自定义日志类型是 product ,那么它的模板将会是 single-product.php 。
单个静态页面
其实这个在 WP 里面就叫 page ,这里翻译成中文后反倒不好分清了。
- [custom-template].php
- page-[slug].php
- page-[id].php
- page.php
- index.php
与 post 类型一样,我们可以使用自定义页模板让 page 类型的页面有不同的页面布局。WP 首先搜索指定的页面模板文件,如果存在的话,如果没有找到,它将寻找带有当前页面别名(slug)的模板文件。基本上如果别名是 aboutus,那么它将在当前主题文件夹中搜索文件 page-aboutus.php。
最后 WP 将像搜索别名页面模板一样搜索文件 ID 模板。
分类
- category-[slug].php
- category-[id].php
- category.php
- archive.php
- index.php
我相信,如果你已经看完了上面的话,这里应该不用我解释了。文件搜索规则是一样的。
标签
- tag-[slug].php
- tag-[id].php
- tag.php
- archive.php
- index.php
其它分类(Taxonomy)
- taxonomy-[tax]–[term].php
- taxonomy-[tax].php
- taxonomy.php
- archive.php
- index.php
这里原文并没有做多少解释。但个人觉得这里要稍微解释下。什么是 taxonomy?它的英文意思很简单,就是分类。但是在WP里面仅这么说的话,我相应很多人还是会一头雾水。还有什么是 term ? term 的英文意思是术语。
在 WP 里面,term 可以是 post_tag (日志标签)、link_category(链接类别)、category(日志分类)及任何其它自定义的分类。例如自定义了一个名为 book (书籍,自定义日志类型)的日志类型,可以把 writer (作家)作为 taxonomy,那么作家的名字,如 hanhan(韩寒),就是 term 之一,一个 taxonomy 下可以有很多 term。
也就是说,taxonomy 是 term 的一个集合。这样,我们就可以有 taxonomy-writer-hanhan.php 作为显示韩寒的书籍分类页面的模板,taxonomy-writer.php 作为显示书籍分类的模板。
作者
- author-[author-nicname].php
- author-[author-id].php
- author.php
- archive.php
- index.php
附件
- [mime-type].php
- attachment.php
- single.php
- index.php
日期
- date.php
- archive.php
- index.php
存档
- archive.php
- index.php
搜索
- search.php
- index.php
搜索模板用于显示搜索结果。
404页面
- 404.php
- index.php
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论