开始制作 WordPress 主题之前,首先得了解 WordPress 主题到底由哪些文件构成,你得清楚 WordPress 程序是怎样与主题文件连接的。一般来讲一个主题至少需要包含两个文件:index.php 和 style.css 。

细的来说,可能存在的文件有:

主页:

  1. home.php
  2. index.php(这个算是万能的了)

文章页:

  1. single-{post_type}.php – 如果文章类型是 videos(即视频),WordPress 就会去查找 single-videos.php(WordPress 3.0 及以上版本支持)
  2. single.php
  3. index.php

页面:

  1. xxx.php(文件名随便),自定义页面模板 – 在 WordPress 后台创建页面的时候,右侧边栏可以选择页面的自定义模板
  2. page-{slug}.php – 如果页面的缩略名是 news,WordPress 将会查找 page-news.php(WordPress 2.9 及以上版本支持)
  3. page-{id}.php – 如果页面 ID 是 6,WordPress 将会查找 page-6.php
  4. page.php
  5. index.php

分类模板:

  1. category-{slug}.php – 如果分类的缩略名为 news,WordPress 将会查找 category-news.php(WordPress 2.9 及以上版本支持)
  2. archive-{post_type}.php--如果你的主题有自定义文章类型,比如按照官方网站教程,注册了一个名为 book 的文章类型,那么它的归档页面模板就是 category-book.php,如果没有这个文件,它是不会使用其它文件来代替的,将会直奔 404
  3. taxonomy-{taxonomy_slug}.php-这是自定义分类法的分类页,比如上面你注册了一个 book 的文章类型,然后你注册一个分类法 author, 它的别名是 authors,以便让文章按作者分类。那么这个作者分类页的模板文件就是 taxonomy-authors.php
  4. category-{id}.php -如果分类 ID 为 6,WordPress 将会查找 category-6.php
  5. category.php
  6. archive.php
  7. index.php

标签

  1. tag-{slug}.php – 如果标签缩略名为 sometag,WordPress 将会查找 tag-sometag.php
  2. tag-{id}.php – 如果标签 ID 为 6,WordPress 将会查找 tag-6.php(WordPress 2.9 及以上版本支持)
  3. tag.php
  4. archive.php
  5. index.php

作者:

  1. author-{nicename}.php – 如果作者的昵称为 rami,WordPress 将会查找 author-rami.php(WordPress 3.0 及以上版本支持)
  2. author-{id}.php – 如果作者 ID 为 6,WordPress 将会查找 author-6.php(WordPress 3.0 及以上版本支持)
  3. author.php
  4. archive.php
  5. index.php

日期页面:

  1. date.php
  2. archive.php
  3. index.php

搜索结果:

  1. search.php
  2. index.php

404 (未找到) 页面

  1. 404.php
  2. index.php

附件页面:

  1. MIME_type.php – 可以是任何 MIME 类型 (image.php, video.php, audio.php, application.php 或者其他).
  2. attachment.php
  3. single.php
  4. index.php

函数

  1. functions.php

评论模板

  1. comments.php

关于上面的文件层次结构

上面除了自定义文章类型,和自定义分类法需要固定的模板来显示对应内容,其它的,如果缺少对应文件,可以用其它文件代替。以主页为例,下面有 2 个文件 home.phpindex.phpWordPress 程序会从你的主题文件夹中依次查找这两个文件,如果找到 home.php,则使用 home.php 作为博客首页模板,即使你的主题文件夹中有 index.php;如果 home.php 未找到,则使用 index.php 作为首页模板;如果 home.phpindex.php 都找不到,你的主题将不会被 WordPress 识别,等于废物。

对于上面这么多文件,不一定全部备齐,需要什么模板采用到,对于复杂一点的主题,通常会有很多 php 函数,为了有清晰的层次结构,作者一般会将代码分装在其它的 php 文件中,可以在 functions.php 使用 include_once 等函数包含文件。