博客 / WordPress/ WordPress分类/页面/文章类型等模版继承规则和自定义方法

WordPress分类/页面/文章类型等模版继承规则和自定义方法

首页内容模版

WordPress的首页显示方式在后台「设置→阅读」中配置,可以选择在首页显示最新文章或静态页面。

首页的模板继承优先级如下(从高到低):

  • front-page.php – 无论首页设置为“最新文章”还是“静态页面”,都优先查找此模板。
  • home.php – 如果首页设置为“最新文章”,且不存在 front-page.php,则使用此模板。
  • page.php – 如果首页设置为“静态页面”,且不存在 front-page.php,则使用此模板。
  • index.php – 如果以上模板均未找到,则使用此默认模板。

文章、自定义文章类型内容页模板

文章、页面及自定义文章类型的内容页,其模板调用遵循从具体到通用的规则。优先级从上到下递减。

模板名称说明

模板名称中的 {} 表示动态部分,对应文章数据:

  • {post-type}:文章类型名称,例如 single-product.php
  • {slug}:文章别名(slug),例如 single-hello.php
  • {id}:文章ID,例如 single-1.php

调用优先级规则

  • single-{post-type}-{slug}.php
  • single-{post-type}.php
  • single-{slug}.php
  • single.php
  • singular.php

分类法存档模板

存档页(列表页)显示一系列文章的列表,其模板调用同样遵循从具体到通用的规则。

模板名称说明

模板名称中的 {} 表示动态部分:

  • {taxonomy}:分类法名称,例如 taxonomy-product_cat.php 中的 product_cat
  • {term}:分类项别名,例如 taxonomy-product_cat-cat1.php 中的 cat1

自定义分类法存档模板优先级

  • taxonomy-{taxonomy}-{term}.php
  • taxonomy-{taxonomy}.php
  • taxonomy.php
  • archive.php
  • index.php

分类目录存档模板

分类目录是WordPress内置的分类法,其模板优先级与自定义分类法类似,但模板名前缀为 category

  • category-{slug}.php
  • category-{id}.php
  • category.php
  • archive.php
  • index.php

文章类型存档模板

文章类型存档页显示属于该类型的所有文章,规则相对简单。其中 {post_type} 是文章类型名称,例如 archive-product.php

  • archive-{post_type}.php
  • archive.php
  • index.php

标签存档模板

标签是WordPress内置的分类法,其模板优先级与分类目录类似,模板名前缀为 tag

  • tag-{slug}.php
  • tag-{id}.php
  • archive.php
  • index.php

作者存档模板

作者存档页显示某作者发表的所有文章。其中 {nicename} 对应用户数据表中的 user_nicename 字段,{id} 是作者ID。

  • author-{nicename}.php
  • author-{id}.php
  • author.php
  • archive.php
  • index.php

日期存档页模板

日期存档页显示某个时间段内发表的文章集合。优先级规则如下:

  • date.php
  • archive.php
  • index.php

注意:原文列表中第一项为空,已修正。WordPress 日期存档通常直接使用 date.php,没有更具体的年、月、日模板(如 archive-2024.php),但可以通过 archive.php 结合条件标签实现更细粒度的控制。

搜索结果页面模板

搜索结果页是关键词搜索结果的存档页。

  • search.php
  • index.php

404页面模板

404页面是内容未找到时显示的页面。

  • 404.php
  • index.php

附件模板

附件本质上是一种特殊的文章类型,可以根据MIME类型指定模板。例如,可以为MP4视频创建 video-mp4.php 模板使用自定义播放器。

  • {MIME-type}.php(例如:video-mp4.php
  • text-plain.php
  • plain.php
  • text.php
  • attachment.php
  • single-attachment-{slug}.php
  • single-attachment.php
  • single.php
  • singular.php
  • index.php

嵌入(Embed)模板

嵌入模板用于将文章嵌入到其他页面或网站时显示。可以通过以下规则创建模板来自定义嵌入外观。

  • embed-{post-type}-{post_format}.php
  • embed-{post-type}.php
  • embed.php
  • wp-includes/theme-compat/embed.php(核心备用模板)

发表评论

您的邮箱不会公开。必填项已用 * 标注。