转自:http://www.uedsc.com/index.php/wordpress-cheatsheet.html
本文将介绍wordpress主题文件执行的顺序和文件的层次结构。就是当你访问一个页面时,我们要看看有哪些模板文件被执行。我们都知道单篇日志是用single.php解析内容的。 单页面是用page.php来解析的。但WordPress将根据各种实际情况来寻找不同的模板文件,因此,这里,我们就要看看这是如何工作 的。 我们首先应该清楚这一点:没有 index.php和 style.css你的主题已经不再是一个有效的WP主题…所以理所当然,如果你只有这两个文件,每一个网页被访问时WP都将试图加载 index.php。各位客观且快速浏览一眼下面这个“cheatsheet”来看看我所指的:
(ps:这个图应该从上至下,从左往右看。)
注意一下每个页面类型的执行流程都将在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-[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.php
- index.php