WordPress 块主题文件结构:从零开始认识主题骨架

如果你是 WordPress 新手,打开一个主题文件夹时可能会被各种文件和文件夹搞懵。这很正常——我一次看到 functions.php 和 style.css 同时存在时,也不知道该动哪个。

简单来说,WordPress 主题就是一堆文件的集合,这些文件共同决定了一个网站长什么样、能做什么。块主题(Block Theme)是 WordPress 目前主推的主题类型,它有一套约定的文件结构。掌握这套结构,你就知道该去哪里改代码、加功能。

这篇文章会带你认识块主题的“骨架”:哪些文件是必须的,哪些是可选的,每个文件夹是干什么用的。不需要你记住所有东西,有个大致印象就行——等真正动手改主题时,知道去哪里翻资料比死记硬背重要得多。


一、核心文件:两个必须有的文件

任何一个能被 WordPress 识别的块主题,至少需要这两个文件:

1. style.css——主题的“身份证”

这个文件有两个作用:一是告诉 WordPress 你的主题叫什么、作者是谁、版本号多少;二是放一些全局 CSS 样式。

打开一个 style.css,文件头部通常长这样:

css

/*
Theme Name: 我的主题
Theme URI: https://example.com
Author: 你的名字
Author URI: https://example.com
Description: 这是一个简单的块主题
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-theme
*/

这些注释不是随便写写的——WordPress 后台会读取它们,显示在“外观 > 主题”的卡片上。下面的 CSS 代码就是正常的样式表了。

2. templates/index.html——兜底模板

这个文件是主题的“后防线”。当 WordPress 找不到任何更具体的模板(比如页面模板、文章模板)来显示当前内容时,就会用 index.html。

在块主题里,模板文件是用 HTML 写的,里面包裹着 WordPress 块(Block)的标记。一个简单的 index.html 可能是这样的:

html

<!-- wp:template-part {"slug":"header"} /-->
<!-- wp:group -->
<div class="wp-block-group">
    <!-- wp:post-content /-->
</div>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer"} /-->

注意这里的 <!-- wp:... --> 是块标记,不是普通的 HTML 注释。WordPress 解析器会识别这些标记并渲染对应的块。


二、标准文件夹:WordPress 约定的存放位置

除了上述两个必需文件,下面这几个文件夹是 WordPress 专门预留的,放对应类型的内容:

templates/——整页模板

存放你主题里所有完整的页面模板。除了 index.html,常见模板还包括:

  • 404.html:404 错误页面
  • archive.html:归档页面(分类、标签、日期归档等)
  • singular.html:单篇文章/页面的通用模板
  • page.html:单独的页面模板
  • single.html:单独的文章模板

WordPress 有一套“模板层级”规则:访问一个页面时,它会按顺序查找匹配的模板文件。比如访问一篇普通文章,WordPress 会先找 single-post.html,没有就找 single.html,再没有就找 singular.html,后才是 index.html。

parts/——模板零件

模板零件就是可以重复使用的小碎片,通常用来做头部、底部、侧边栏。你可以把 parts/ 看作一个零部件仓库,每个零件都是一个独立的 HTML 文件。

比如 parts/header.html 可能包含网站标志、导航菜单;parts/footer.html 包含版权信息和友情链接。然后在 templates/index.html 里用 <!-- wp:template-part {"slug":"header"} /--> 把它“拉”进来。

这样做的好处是:改一处 header.html,所有引用它的模板都会更新,不用逐个页面修改。

patterns/——块模式

块模式是由多个块组合成的布局模板。用户在编辑页面时,可以从“块模式”面板里一键插入这些预制好的布局,比如“三栏图文混排”“带背景的号召性语句”等。

每个 patterns/ 文件夹里的 PHP 文件会返回一个数组或一段块标记,WordPress 会自动注册它们。示例:

php

<?php
return array(
    'title'       => '三栏卡片布局',
    'description' => '展示三个并排的内容卡片',
    'content'     => '<!-- wp:columns -->...<!-- /wp:columns -->',
);

styles/——样式变体

存放 JSON 格式的样式变化文件。你可以理解为“同一套主题的不同皮肤”——切换样式变体会改变全局颜色、字体等视觉属性,而不影响内容结构。

一个 styles/dark.json 文件可能长这样:

json

{
    "version": 3,
    "settings": {
        "color": {
            "palette": [
                {
                    "slug": "background",
                    "color": "#1a1a1a",
                    "name": "背景色"
                }
            ]
        }
    }
}

三、其他常见文件和文件夹

theme.json——全局设置中心

这是块主题重要的配置文件之一。你可以在这里控制:

  • 颜色调色板
  • 字体大小预设
  • 间距(margin/padding)选项
  • 区块的默认样式
  • 是否启用某些功能

WordPress 的后台“样式”界面,很多选项其实就是这个文件的图形化操作界面。

functions.php——PHP 扩展点

当主题需要 PHP 来添加额外功能时,这个文件就派上用场了。比如注册自定义块、添加额外的 CSS 类、修改某些默认行为。

注意:块主题强调“用配置代替代码”,所以 functions.php 的作用比传统主题小了很多。能用 theme.json 搞定的,尽量别写 PHP。

php

// 一个简单的示例:为文章添加自定义类
add_filter('body_class', function($classes) {
    if (is_single()) {
        $classes[] = 'single-post-style';
    }
    return $classes;
});

screenshot.png——主题预览图

尺寸为 1200×900 的图片,WordPress 后台和主题目录会用这张图来展示你的主题。支持 PNG 和 JPG 格式。

README.txt——说明文档

提交到 WordPress 官方主题目录时必须要有的文件。给用户看的,写清楚主题特点、安装方式、版权信息等。WordPress 本身不会执行这个文件。


四、开发者常用的附加文件和文件夹

这部分内容对于普通建站用户来说可以先跳过,如果你是开发者或想深入,了解一下没坏处。

assets/——静态资源

存放 CSS、JavaScript、图片等前端资源。有些主题作者也会叫 resources/ 或 public/。

inc/——PHP 辅助文件

放自定义 PHP 类或函数库,保持 functions.php 整洁。常见别名有 includes/ 或 src/。

版本控制和构建工具文件

  • .gitignore / .gitattributes:Git 版本控制相关
  • .editorconfig:统一编辑器代码风格
  • package.json:Node.js 项目配置,常用于定义构建流程
  • CHANGELOG.md:版本更新日志
  • LICENSE.md:许可证声明(提交官方主题目录必须用 GPL v2 或更高版本)

这些文件跟 WordPress 运行没有直接关系,但如果你在团队协作或者维护一个长期项目,它们会让工作更规范。


总结

记住这几条,你就掌握了块主题文件结构的精髓:

  1. 三个核心位置:style.css(主题信息)、templates/index.html(兜底模板)、theme.json(全局配置)。其中前两个是必须的。
  2. 四个标准文件夹:templates/ 放整页模板,parts/ 放可复用零件,patterns/ 放块组合模板,styles/ 放样式变体。
  3. 按需增加:静态资源放 assets/,PHP 工具代码放 inc/。不是非要有的,别一开始就建一堆空文件夹。
  4. php 和 html 并存:块主题用 HTML 文件定义内容结构,用 functions.php 和 theme.json 处理逻辑和配置。各司其职,别弄混了。
  5. 先读懂,再动手:改代码之前,花十分钟把主题目录过一遍,知道每个文件是干什么的。遇到不认识的,去查 WordPress 官方文档或看社区里成熟的主题是怎么处理的。

把主题想象成一座房子的设计图纸。style.css 是封面说明,templates/ 是每层楼的平面图,parts/ 是门窗这些标准件,theme.json 是装修配色方案。图纸清晰了,施工才不慌乱。