这两天在给自己制作新的模板,又研究了下官方的文档,发现了下面这张模板层次结构图。
这张图解释了WP从用户给出query到最后调用正确的模板文件来产生页面的一个过程。从图中我们可以看到,WP一种支持13种模板文件。那么这十三种模板文件中,到底哪些才是必须的呢?
![]() |
| 相册:illustration |
1. index.php
可以看到,只要对应的模板文件找不到,最后都会调用index.php,只有这个文件是逻辑上必须的,如果没有,模板根本不能加载。
2. single.php
此文件从逻辑上不是必须,但是一般的主题都会带有这个文件。究其原因,就是单篇帖子页面和主页,有着非常大的不同,这个页面上与首页最重要的不同,可能就是评论展示了。
3. page.php
这个文件也是一般主题常带有的,这个是页面文件的模板。那么页面又有哪些不同呢?页面作为一种常设的Post,其发布时间可能并不是那么重要的,因为这个页面一经发布,就长久存在,不过,我个人倒是认为,虽然发布时间不重要,但是更新时间确实在某些情况下还是有必要的。比如我自己用页面来展示插件的文档,那么这个文档的更新时间能够向用户传达文档的时效性,所以,我觉得,在页面展示更新时间,是否应该作为主题管理面板的一个选项给用户选择。
4. pagename.php
这个文件不是叫pagename.php,而是说,这个模板文件也是page.php的一个变种,是page的slug来命名的,基本上,很少有主题会带有这个文件,不过呢,我觉得,国产模板的作者可以考虑带上这个文件,比如,很多博客都喜欢guestbook这样的应用,但是一般的模板文件page.php,往往不会带评论部分,作为一个模板作者来说,产生一个guestbook.php这样的事情完全是小事一桩。
5. archive.php
这个文件其实就是展示归档的模板文件,一般来说,主题里都会带有这个文件的。不过呢,从图中我们也可以看出,归档其实可以分成四个种类的,日期归档,分类归档,tag归档,作者归档。从功能上来说,划分那么细并非是必须的,不过呢,我想对于团队博客来说,作者归档里面带上照片和作者介绍,应该是很好玩的应用吧。而对于分类归档和日期归档,可以考虑给予一些辅助检索的措施,当然,这些都可以详细展开讨论,作为一个用户,您有什么新奇的点子呢?
6. search.php
带有这个模板文件的主题也不多,其实这个里面还是很有文章可以做一下的,不过呢,我暂时也没有很么好点子。比如在搜索页面嵌入一个google搜索,或者嵌入一个专门的带有类似suggesting那样功能的搜索框,都应该是比较好玩的吧……
7. 404.php
当找不到文章的时候,或者永久链接失效的时候,都会进入404。404又是一个大有学问的模板文件,前段日子,google黑板报在搞404代码专题周,google都如此重视404,可见其重要了吧。以前A List Apart也写过一篇《完美404》,给出了很多有效的建议。我想,作为一个主题作者,您是不是也考虑,在您的模板中加入一个非常友好的404呢?
8. attachment.php
到现在为止,我还没有见过哪个主题带有这个文件的呢,也可能我从来没有注意过这个问题吧,我现在的想法就是,那种专门展示照片,艺术作品的photolog,可以做一个美丽的展示单幅图片的image.php,哈哈……Updated: 哈哈,关于这个,大家可以瞧瞧梦色的文章,如何制作Gallery
========分割线========
以上都是一些我个人的想法,和我对一些模板文件的认识,难免有偏颇之处,还望大家指正。另外,写出来这个,也是想和大家讨论讨论的,哪些模板文件是您非常需要的,哪些又是您非常不需要的?
P.S. 与主题完全无关的内容,我发现Picasa Web竟然悄悄的改版了,好像更人性化了,在单幅图片浏览页面添加了上传按钮,而且图片的链接格式也发生了较大的改变,现在竟然用table来做容器了……


以前用过一个老外的主题,只有五个模板文件,single等都缺省了。
很不错,对WP新手修改模板就很有意义了
index.php
style.css
就这两个才是必须的。
嗯,都是是——必须的(东北话?),不过可以把它转移到另一个文件上去或者独立目录内的文件
然后再加个空的index.php,这样别人就不那么容易下载你的CSS了,哈哈
这个图正是一直在找的啊!太有用了!
对我这种人来说 每一个文件都是必须的!哈哈!
非常好,一定要收藏。
哈哈,欢迎收藏~~
其实所有这些模板都可以包含在 index.php 之中,多做一些判断就是了,is_home 解析某段代码,is_single 解析某段代码,依此类推……这样做会导致 index.php 过意繁琐和不易修改,能分解为以上的单个模板是最好不过的……建议加入 comments.php 和 sidebar.php ,没有这两个模板也没事,当引述这两个模板时,如果发现当前主题没有,便会从 default 中调出……
嗯,我是看着template hierarchy的文档写的这个文章,所以,正好就没有带上comments.php和sidebar.php。不过,我倒是没注意到,竟然会去调用default的文件,以后我去研究下^_^。sidebar.php 还是有一些东西可说的,所以,我想专门开个文章来说,哈哈,欢迎到时候过来切磋切磋(*^__^*) 。
你的404好丑@@
你是第二个这么说的了……好打击我啊……
我在404里面加了好几个广告@@
广告?有人看么?404不是展示频率最低的网页么……
貌似从2.5引入 Gallery 功能后.主题文件里面需要有一个叫 image.php 的文件才能够实现默认主题那样的图片浏览功能.
之前写了一个东西,不知道有用没!
http://dreamcolor.net/2008/04/how-to-add-wordpress-25-gallery-to-your-current-theme-cn/
很不错的文章,这个事情要是做得更进一步,我想用户会更喜欢吧,比如做成插件,通过shortcode直接注入到页面里,就可以给页面加上原生的相册,以此来弥补主题作者考虑的不足。
pagename.php这个模板是以前所没有的。看文中的介绍,这个和自定义页面模板的作用很类似。
这个功能留给了用户完全使用php来编写页面的自由,这个页面内完全可以不调用the loop。但是页面模板,我觉得应该是要调用the loop的。不过呢,WP里面,无论是否使用模板撰写页面,都会调出那个输入框的。这肯定会让用户迷惑的,为啥我写了半天,页面上啥也没有呢?所以,从这点来说,页面模板和pagename.php这两个东西功能上很含糊,要是主题作者或者用户不按照其本来的逻辑来使用这两个东西,那么这两个东西看起来是完全一样的。
除了attachment.php没有,其他都全~~而且pagename.php还有好几个呢~~
Picasa 的外链使用起来不怎么方面,每次都是直接拷贝代码才可以。。。
你用的那个是aw的模板吧,aw貌似在可用性上和用户体验上下了大功夫了,他的主题我是相当喜欢的。等我把自己的基本框架搭好以后,一定要把他的优秀功能都学过来,嘿嘿o(∩_∩)o
是的,他是非常的在乎用户体验这方面的事情~~
其实他的模板我自己也修改过,呵呵~~不知道这方面有没有打折扣了~~
我用的模板,archive.php只是单纯 include了一下 search.php, 这样我可以直接改 search.php 来定义存档和搜索结果页面,我觉得挺好的。。。
嗯,合并起来也是很有道理的,主要是揣摩一下用户的意图,他们打开archive和search,都是想要找到什么,如果是这样,那么这两个页面采用完全相同的样式倒也没有什么不好。
严重批评一下,要写模板的同学,竟然不去了解下wp模板的层次图。
嘿嘿^_^……这不是去看了嘛,看完产生了很多没好的想法,可惜发现我不一定能够全部搞定啊,好难,只好慢慢来了~~
真是好文章啊,我一直都是迷迷糊糊的。你这个说明 真是清晰。
你做的模板好漂亮啊,难怪Otheme会看上,而且还是MM,真是难得啊~~
感觉 attachment.php 只适合那些“特殊人群”
同感.
那个页面确实不是很重要的,不过,让我联想起了有人把WP改成微博客,那个东西的存在,也预示了WP的功能上的一种可能性而已,并不一定要去用