WordPress 允许您在 theme.json 中注册自定义模板。更具体地说,您可以通过 customTemplates 属性注册单篇文章、页面或 CPT(自定义文章类型)模板。
重要的是要区分这些模板是用于单篇文章/页面/CPT 模板,而不是用于其他类型的模板。当注册这些模板时,您的主题用户可以它们从编辑文章屏幕中选择,并且其文章的设计将与网站前端的模板匹配。
自定义模板为您提供了很多灵活性,可以设计默认文章或页面模板的变体。例如,您可以创建一个只显示内容的空白文章模板,设计一个带有侧边栏的页面模板,甚至是一个完全没有侧边栏的模板。这真的取决于您的主题项目的目标是什么。
本文档将教您如何通过 theme.json 注册自定义模板。若要更深入地了解如何构建自定义模板,请查看 模板文档。
添加自定义模板
您可以通过 theme.json 中的 customTemplates 属性注册自定义模板。它接受一个模板对象数组,每个对象定义一个单独的模板。
传递给 customTemplates 数组的每个对象支持以下属性:
name: 不带文件扩展名的模板文件名。title: 您模板的可读标题,可以翻译。postTypes: 模板可用的文章类型 slug 数组。这是一个可选设置,默认为page文章类型。
对于块主题,WordPress 将在主题的 /templates 文件夹中查找自定义模板(实际上是所有模板)。因此,如果您注册一个名为 example 的模板,您还必须在主题中包含一个 /templates/example.html 文件。
您可以为您的主题添加任意数量的自定义模板。只需记住提供太多选择的使用性方面。
注册模板
假设您想为页面和文章创建一个名为 Content Canvas 的模板。该模板将只显示网站页眉、文章/页面内容和网站页脚。当您的用户需要完整内容区域像某种空白画布一样时,他们可以选择它。
您将采取的第一步是在主题中创建一个 /templates/content-canvas.html 文件。不要担心现在向其中添加任何内容;只需暂时将其留空。
现在在 theme.json 中注册此模板,如下所示:
{
"version": 2,
"customTemplates": [
{
"name": "content-canvas",
"title": "Content Canvas",
"postTypes": [
"page",
"post"
]
}
]
}如果您在 WordPress 后台编辑文章或页面,您应该在 Post/Page 侧边栏面板中的 Template 选择器下看到新的 Content Canvas 选项:

构建模板
现在让我们着手实际构建模板,至少是为了演示的目的。请记住,您可以在手册的 模板章节 中了解更多关于构建模板的信息。
将此代码添加到您的 /templates/content-canvas.html 文件中:
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
<!-- wp:group {"tagName":"main","layout":{"type":"default"}} -->
<main class="wp-block-group">
<!-- wp:post-content {"layout":{"type":"constrained"}} /-->
</main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->这将为您提供一个具有开放内容区域的可用模板。
要在网站编辑器中查看其外观,请前往 WordPress 后台的 外观 > 编辑器。然后,在 Templates 部分下选择 Content Canvas:

这仅仅是可能性的演示。自定义模板的真正力量在于您用它们构建的内容。