首页 / 主题开发手册 / 经典主题 / 模板文件详细 / 自定义文章类型模板

自定义文章类型模板

WordPress主题系统支持自定义文章类型的定制模板。从WordPress 3.0版开始就支持属于自定义类型的单文章模板,在3.1版增加了对自定义存档模板的支持。

自定义文章类型 - 模板层次结构

WordPress将通过模板的层次结构工作,并首先使用它遇到的模板文件。因此,如果你想为你的acme_product自定义文章类型创建一个自定义模板,一个好的开始是复制single.php文件,保存为single-acme_product.php并编辑它。

然而,如果你不想创建自定义模板文件,WordPress将使用主题中已经存在的文件,这将是archive.php和single.php以及index.php文件。

单个文章和它们的存档可以分别使用single.php和archive.php模板文件来显示。

  • 自定义文章类型的单个文章将使用single-{post_type}.php
  • 他们的存档使用archive-{post_type}.php
  • 如果你没有这个文章类型的存档页,你可以通过传递BLOG_URL?post_type={post_type}

其中{post_type}register_post_type()函数的$post_type参数。

所以对于上面的例子,你可以为单个产品文章和它们的存档创建single-acme_product.php和archive-acme_product.php模板文件。

另外,你可以在任何模板文件中使用is_post_type_archive()函数来检查查询是否显示指定的文章类型的存档页,以及post_type_archive_title()来显示文章类型标题。

 

自定义文章类型模板

  • single-{post-type}.php
    当访问者要求从一个自定义的文章类型中获得单个文章时,使用单文章模板。例如,single-acme_product.php将用于显示来自一个名为acme_product的自定义文章类型的单个文章。
  • archive-{post-type}.php
    归档文章类型模板是在访问者要求自定义文章类型归档时使用的。例如,archive-acme_product.php将用于显示来自自定义文章类型acme_product的文章归档。如果archive-{post-type}.php不存在,则使用archive.php模板文件。
  • index.php
    如果自定义文章类型的特定查询模板(single-{post-type}.php, single.php, archive-{post-type}.php, archive.php, search.php)不存在,则使用index.php。

 

函数参考