在 入门 章节中,您学习了主题的基本概念以及如何无需代码即可运行主题。对于简单的主题来说,无需代码的方法是完全没问题的,但一旦您需要添加用户界面中无法实现的功能,就需要开始直接编写代码了。
自定义主题代码的第一步是在您喜欢的文件编辑器中打开主题。您可以使用任何主题来完成此操作,甚至可以使用您在入门章节中创建的主题。
了解其他人正在做的事情是个好主意,因此请随时查看 WordPress 主题目录中的几个 区块主题。
本文档将带您了解典型区块主题的文件和文件夹结构。
文件和文件夹
WordPress 主题无非是各种文件的集合,这些文件依赖于不同的 Web 技术,例如 HTML、CSS 和 PHP。区块主题在如何布局这些文件方面也遵循标准结构。
在最基本的情况下,主题的结构将类似于以下内容。请注意标记为 必需 的文件/文件夹,因为它们对于区块主题的正常运行是必要的:
parts/footer.htmlheader.html
patterns/example.php
styles/example.json
templates/404.htmlarchive.htmlindex.html(必需)singular.html
README.txtfunctions.phpscreenshot.pngstyle.css(必需)theme.json
必需文件
有两个必要的文件供 WordPress 识别您的区块主题,您将在接下来的文档中了解更多关于这些文件的信息:
style.css(主样式表):此文件用于配置主题数据,例如名称和描述。它也可用于添加自定义 CSS。templates/index.html(模板):默认/备用模板。这是 WordPress 将其视为区块主题所必需的。
可选文件
主题可以包含除上述必需列表之外的任何数量的自定义文件。WordPress 还会寻找其他几个文件,如果可用则使用它们:
README.txt(主题审查:文件):这不是 WordPress 软件直接使用的文件。但在向官方 WordPress 主题目录提交主题时,这是一个必需的文件,旨在为用户提供有关该主题的信息。functions.php(自定义功能):一个 PHP 文件,WordPress 会在页面加载过程中初始化主题后自动加载它。您可以使用它来运行自定义 PHP。screenshot.png:您主题的 1200×900 像素截图图像。用于在 WordPress 后台的 外观 > 主题 下以及(如果提交到该目录)WordPress 主题目录中显示您的主题。.png和.jpg都是可接受的文件格式。theme.json(全局设置和样式):用于配置站点设置和样式,并与用户界面集成。
标准文件夹
在上面的示例中,包含了一些文件夹。主题可以有更多文件夹,但 WordPress 已指定其中几个用于特定功能。当您阅读本章时,您将了解更多关于这些文件夹的信息:
parts(模板部分):存放您主题的自定义模板部分。部分是较小的部分,您可以将其包含在顶级模板中。通常,这将包括标题、页脚和侧边栏等内容。patterns(区块模式):由一个或多个块组成的可重用模式,用户可通过编辑器界面插入它们。WordPress 将自动注册此文件夹中包含的文件。styles(样式变体):存储在单独 JSON 文件中的主题全局设置和样式的变体。templates(模板):代表前端整体文档结构的文件。模板由区块标记组成,是网站访问者看到的内容。
高级主题结构
本节旨在让您熟悉主题中常见的一些文件,但不会详细涵盖所有可能性。这些文件完全是可选的,并且因主题而异。如果您不熟悉更高级的开发方法,现在可以跳过此部分。
实际上,区块主题可以包含更多文件和文件夹。项目越复杂,其结构就越复杂。
让我们为原始示例添加几个额外的文件和文件夹:
assets/css/core-site-title.css
images/header-background.png
js/navigation.js
inc/ClassName.phpfunctions-helpers.php
parts/footer.htmlheader.html
patterns/example.php
styles/example.json
templates/404.htmlarchive.htmlindex.html(必需)singular.html
.editorconfig.gitattributes.gitignoreCHANGELOG.mdLICENSE.mdREADME.txtfunctions.phppackage.jsonscreenshot.pngstyle.css(必需)theme.json
可选文件夹
没有对可包含的文件夹数量的限制,但上面的示例添加了您在 WordPress 主题中遇到的最常见的两种用例:
assets(包含资源):许多主题作者使用此文件夹来存储其主题所需的额外 CSS、图像/媒体和 JavaScript。此文件夹也可能有其他名称,例如resources或public。inc(自定义功能):主题通常在此文件夹中存储自定义 PHP 类或文件以提供额外功能。此文件夹也可能被命名为includes、src等。
可选文件
此列表远非详尽无遗,但包含了一些在主题开发中常用的文件。(注意:以下大多数链接指向外部第三方网站,与 WordPress 无关。)
.editorconfig(EditorConfig):用于配置代码编辑器的格式,例如换行符和间距。.gitattributes(Git:属性):配置 Git 版本控制系统中的属性。.gitignore(Git:忽略):定义在将代码提交到 Git 存储库时要忽略的文件。CHANGELOG.md(保持变更日志):您主题的每个版本的重要变更的人类可读日志。LICENSE.md(主题审查:许可与版权):定义主题的许可证。请注意,提交到 WordPress 主题目录的所有主题都必须使用 GPL v2+ 许可证。package.json(npm: package.json):通常用于在 Node 环境中定义构建过程和开发依赖项。
如果您目前不理解所有这些文件及其用途,请不要感到气馁。再次强调,这些完全是开发人员工作流程中的可选元素。请随时在您自己的节奏下稍后了解更多关于它们的信息。
代码编辑器视图
这是一个具有高级结构的现实世界主题的快速编辑器视图:

这比本文档介绍的基础知识要复杂得多。重点是,即使遵循标准做法构建区块主题,您也将拥有大量自定义内容的自由。您可能希望与版本控制系统集成,添加构建过程等。
因此,请将此文档视为您可以在此基础上构建的基础。但保持简单并坚持基础没有任何害处。