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

wordpress 模板命名
(图片来源网络,侵删)

核心文件命名

这些是构成一个 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 模板命名
(图片来源网络,侵删)
  1. 优先级:WordPress 按照一个从最具体到最通用的顺序来查找模板文件,如果一个更具体的文件存在,它就不会使用更通用的文件。
  2. 层级结构:你可以通过在主题文件夹中创建子文件夹(如 templates/, parts/)来组织模板文件,但这不会改变 WordPress 的查找规则,WordPress 只在主题的根目录下查找。

常见模板文件及其优先级(从高到低):

模板文件 用途 触发条件
front-page.php 首页模板 当你在“设置 > 阅读”中选择了“一个静态页面”作为首页时,这个文件会优先于 home.phpindex.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 会按以下顺序查找模板文件:

  1. category-news.php (如果分类的 slug 是 news)
  2. category-{id}.php (如果分类的 ID 是 5,则查找 category-5.php)
  3. category.php
  4. archive.php
  5. index.php (最后的回退选项)

最佳实践和补充命名

除了上述标准模板文件,还有一些高级命名技巧和最佳实践。

模板部分

为了代码复用和模块化,开发者通常将页面的不同部分(如头部、侧边栏、页脚)拆分成独立的文件。

文件名 描述
header.php 网站头部,通常包含 <head> 标签、Logo、主导航菜单等。
footer.php 网站底部,通常包含版权信息、页脚小工具等。
sidebar.php 侧边栏。
comments.php 评论列表和评论表单。

如何使用: 在你的主模板文件(如 index.php)中,使用以下 PHP 函数来引入这些部分:

wordpress 模板命名
(图片来源网络,侵删)
<?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() ); 

自定义模板(页面模板)

如果你想为特定页面创建一个完全不同的布局,可以创建自定义页面模板。

  1. 在主题根目录创建一个 PHP 文件,templates/full-width.php

  2. 在文件顶部添加以下注释头:

    <?php
    /**
     * Template Name: Full Width No Sidebar
     * Template Post Type: page // 可选,限制此模板仅对页面类型生效
     */
    ?>
  3. 在 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 生态系统完美兼容。