下面我将从核心文件命名、模板文件命名和最佳实践三个方面来详细解释。

(图片来源网络,侵删)
核心文件命名
这些是构成一个 WordPress 主题所必需的最基本文件,它们的名称是固定的,不能随意更改。
| 文件名 | 描述 | 必需性 |
|---|---|---|
style.css |
主题的核心标识文件,它包含主题的元数据信息,如主题名称、作者、版本、描述等,WordPress 通过读取这个文件来识别主题。 | 必需 |
index.php |
主模板文件,当没有其他更具体的模板文件(如 single.php)能匹配当前请求时,WordPress 最终会回退到这个文件来显示内容,它是主题的最后一道防线。 |
必需 |
functions.php |
主题的功能文件,用于添加主题支持(如特色图像、自定义菜单)、注册脚本和样式、定义小工具区域等,它像一个插件,为你的主题提供功能。 | 必需 |
screenshot.png |
主题的预览图,在 WordPress 后台“外观 > 主题”页面显示,帮助用户识别你的主题,建议尺寸为 1200x900 像素,以保持清晰。 | 强烈推荐 |
示例 style.css 头部信息:
/* Theme Name: My Awesome Theme Theme URI: https://example.com/my-awesome-theme Author: Your Name Author URI: https://example.com Description: A brief description of my awesome theme. Version: 1.0.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: my-awesome-theme // 用于翻译 Domain Path: /languages // 翻译文件存放目录 */
模板文件命名
这些文件用于控制 WordPress 网站中不同类型页面的显示,WordPress 会根据当前的查询类型(是显示单篇文章、页面还是归档列表)来寻找最匹配的模板文件。
命名规则:

(图片来源网络,侵删)
- 优先级:WordPress 按照一个从最具体到最通用的顺序来查找模板文件,如果一个更具体的文件存在,它就不会使用更通用的文件。
- 层级结构:你可以通过在主题文件夹中创建子文件夹(如
templates/,parts/)来组织模板文件,但这不会改变 WordPress 的查找规则,WordPress 只在主题的根目录下查找。
常见模板文件及其优先级(从高到低):
| 模板文件 | 用途 | 触发条件 |
|---|---|---|
front-page.php |
首页模板 | 当你在“设置 > 阅读”中选择了“一个静态页面”作为首页时,这个文件会优先于 home.php 和 index.php 被调用。 |
home.php |
博客文章列表页模板 | 当你的首页设置为“最新文章”时,或者访问归档页面(如分类、标签、日期归档)时,如果找不到更具体的归档模板,会使用此文件。 |
single.php |
单篇文章/页面模板 | 显示任何一篇单独的文章或页面,如果文章是自定义文章类型,可以创建 single-{post_type}.php(如 single-product.php)来为该类型指定特定模板。 |
page.php |
独立页面模板 | 显示一个静态页面,可以创建 page-{slug}.php(如 page-about.php)来为特定 slug 的页面指定模板,或 page-{id}.php(如 page-7.php)来为特定 ID 的页面指定模板。 |
archive.php |
归档页面模板 | 当显示分类、标签、作者、日期等归档列表时使用,如果找不到更具体的归档模板,会回退到此文件。 |
category.php |
分类归档模板 | 显示分类页面的归档列表,优先级高于 archive.php。 |
tag.php |
标签归档模板 | 显示标签页面的归档列表,优先级高于 archive.php。 |
author.php |
作者归档模板 | 显示特定作者的归档列表,优先级高于 archive.php。 |
date.php |
日期归档模板 | 显示按日期(年、月、日)归档的列表,优先级高于 archive.php。 |
search.php |
搜索结果页模板 | 显示搜索关键词的查询结果。 |
php |
404 错误页模板 | 当用户访问一个不存在的页面时显示。 |
comments-popup.php |
评论弹窗模板(现已较少使用)。 |
模板层级 示例:
假设你正在访问一个分类链接 example.com/category/news/,WordPress 会按以下顺序查找模板文件:
category-news.php(如果分类的 slug 是news)category-{id}.php(如果分类的 ID 是 5,则查找category-5.php)category.phparchive.phpindex.php(最后的回退选项)
最佳实践和补充命名
除了上述标准模板文件,还有一些高级命名技巧和最佳实践。
模板部分
为了代码复用和模块化,开发者通常将页面的不同部分(如头部、侧边栏、页脚)拆分成独立的文件。
| 文件名 | 描述 |
|---|---|
header.php |
网站头部,通常包含 <head> 标签、Logo、主导航菜单等。 |
footer.php |
网站底部,通常包含版权信息、页脚小工具等。 |
sidebar.php |
侧边栏。 |
comments.php |
评论列表和评论表单。 |
如何使用:
在你的主模板文件(如 index.php)中,使用以下 PHP 函数来引入这些部分:

(图片来源网络,侵删)
<?php get_header(); ?> // 引入 header.php <?php get_sidebar(); ?> // 引入 sidebar.php <?php get_footer(); ?> // 引入 footer.php
模板部件
这是 WordPress 4.7 引入的一项强大功能,允许你创建可复用的、可参数化的模板片段,命名更灵活,通常放在 parts/ 或 template-parts/ 文件夹中。
| 文件名 | 描述 |
|---|---|
content.php |
摘要。 |
content-single.php |
单篇文章的完整内容。 |
content-page.php |
。 |
entry-header.php |
文章/页面的标题、元信息等。 |
entry-footer.php |
文章/页面的底部分类、标签、作者信息等。 |
如何使用:
使用 get_template_part() 函数:
<?php // 引入 template-parts/content.php 文件 get_template_part( 'template-parts/content', 'excerpt' ); // 引入 template-parts/content.php 文件,并传递一个 $name 参数 'single' // WordPress 会先查找 content-single.php,如果不存在则回退到 content.php get_template_part( 'template-parts/content', get_post_type() );
自定义模板(页面模板)
如果你想为特定页面创建一个完全不同的布局,可以创建自定义页面模板。
-
在主题根目录创建一个 PHP 文件,
templates/full-width.php。 -
在文件顶部添加以下注释头:
<?php /** * Template Name: Full Width No Sidebar * Template Post Type: page // 可选,限制此模板仅对页面类型生效 */ ?>
-
在 WordPress 后台编辑页面时,你可以在“页面属性”框的“模板”下拉菜单中看到并选择这个“Full Width No Sidebar”模板。
| 命名类型 | 规则 | 示例 |
|---|---|---|
| 核心文件 | 固定名称,不可更改 | style.css, index.php, functions.php |
| 模板文件 | 按功能命名,WordPress 按优先级查找 | single.php, category.php, archive.php |
| 模板部分 | 按页面区域划分,通过 get_*() 函数调用 |
header.php, footer.php, sidebar.php |
| 模板部件 | 模块化片段,通常放在 template-parts/ 下,通过 get_template_part() 调用 |
content.php, entry-header.php |
| 自定义模板 | 文件名自由,但需在顶部添加 Template Name 注释 |
templates/full-width.php |
遵循这些命名规范,是成为一名专业 WordPress 开发者的基础,它让你的主题结构清晰、易于维护,并且与 WordPress 生态系统完美兼容。
