模板层级是 WordPress 主题开发中最核心的概念之一。它决定了当用户访问某个页面时,WordPress 会使用哪个模板文件来渲染内容。掌握模板层级,你就能精确控制每一个页面的显示方式。

模板层级的基本规则

WordPress 在决定使用哪个模板文件时,会按照特定的优先级顺序查找。优先级最高的是最具体的模板文件,如果找不到就依次向上回退,直到找到 index.php 作为最后的保障。

对于首页,查找顺序是 front-page.phphome.phpindex.phpfront-page.php 的优先级最高,它控制的是在后台设置中指定的首页。如果设置了静态首页,front-page.php 会覆盖 home.php

对于单篇文章,查找顺序是 single-{文章类型}.phpsingle.phpsingular.phpindex.php。例如,对于 product 类型的文章,会优先查找 single-product.php

对于独立页面,查找顺序是 page-{别名}.phppage-{ID}.phppage.phpsingular.phpindex.php。你可以为特定页面创建独立的模板文件。

对于分类归档,查找顺序是 category-{分类别名}.phpcategory-{分类ID}.phpcategory.phparchive.phpindex.php。这让不同分类可以有完全不同的展示风格。

对于标签归档,查找顺序是 tag-{标签别名}.phptag.phparchive.phpindex.php

对于自定义分类法归档,查找顺序是 taxonomy-{分类法名称}-{术语别名}.phptaxonomy-{分类法名称}.phparchive.phpindex.php

对于作者归档,查找顺序是 author-{用户ID}.phpauthor.phparchive.phpindex.php

对于日期归档,查找顺序是 date.phparchive.phpindex.php

对于搜索结果,查找顺序是 search.phpindex.php

对于 404 错误,查找顺序是 404.phpindex.php

模板层级的设计思想

模板层级的核心思想是“从具体到通用”。这种设计让你可以精细控制每个页面的显示,同时不需要为每个页面都创建独立模板。大多数情况下,archive.php 和 single.php 就能覆盖绝大部分内容,只有在需要特殊定制时才创建更具体的模板。

在主题中善用模板层级

理解模板层级后,你可以在主题开发中做出更好的决策。对于普通博客,index.phpsingle.phppage.php 和 archive.php 就足够了。对于有多个内容类型的网站,利用 single-{文章类型}.php 和 archive-{文章类型}.php 分别控制不同内容的显示。对于有特殊需求的关键页面,使用 page-{别名}.php 创建独立模板。