WordPress 块编辑器功能强大,可以处理许多不同的布局和设计方案。然而,在构建主题时,你必须记住,并非所有用户都是熟练的设计师,甚至可能对拼凑自己的布局不感兴趣。这就是起始模式对他们有益的地方。

WordPress 支持两种类型的起始模式,用于页面(或任何文章类型)和模板。此功能允许您为您的主题用户创建起点,以便他们可以用最小的技能构建页面和模板。

起始页面模式

页面模式允许您创建自定义模式,您的主题用户在通过 WordPress 后台的页面 > 添加新页面添加新页面时可以访问这些模式。从那里,将弹出一个模态框,如果已注册任何模式,则向他们显示模式的选项。

这是使用默认 Twenty Twenty-Four 主题安装时创建新页面的屏幕外观:

覆盖编辑页面屏幕的模态框,显示各种页面布局的网格。

这是一个强大的功能,因为这意味着您可以为您的主题用户或客户提供设计精良的起点。他们不需要从头开始构建。他们只需要选择一个模式,它会自动插入内容区域。从那里,他们可以对其进行任何自定义。

如何创建页面模式

从技术上讲,您主题中的任何模式都可以转换为页面模式。您需要做的就是定义正确的参数以将其标记为页面模式。正如在注册模式中所述,有两个可用的文件头字段,您必须设置它们才能实现此操作:

  • 块类型: 将 core/post-content 添加为模式的块类型之一,告诉 WordPress 该模式应用作文章内容。
  • 文章类型: 您可以添加一个或多个文章类型(用逗号分隔)来连接模式。

结合这两个字段,您就创建了起始页面模式。这是虚构的 /patterns/example-page.php 模式文件的文件头外观:

<?php
/**
 * Title: Example Page
 * Slug: themeslug/example-page
 * Categories: page
 * Block Types: core/post-content
 * Post Types: page
 * Viewport width: 1376
 */
?>
<!-- Block code here. -->

这实际上就是您必须做的全部。定义模式的 块类型 和 文章类型 参数,您就有了起始页面模式。

这将适用于任何已选择使用块编辑器的文章类型,包括默认的 post 和 page 文章类型。

由于页面模式实际上与内容绑定,因此您通常不会在此处包含诸如站点页眉或页脚之类的内容。该模式作为文章内容输出。

起始模板模式

与页面模式一样,模板模式在构建新模板时为用户提供起点。不同之处在于,模板模式来自站点编辑器。

如果您访问 WordPress 后台的外观 > 编辑器 > 模板并单击创建新模板的+图标按钮,您应该看到一个新的添加模板模态框:

WordPress 站点编辑屏幕,带有模态弹出窗口,要求用户添加新模板。

从那里,您可以选择要创建的模板。如果模板类型已为其注册任何模式,则会出现一个新的选择模式模态框,覆盖模板编辑界面。

例如,当使用默认 Twenty Twenty-Four 主题选择首页选项时,您将看到以下内容:

模态框显示来自 WordPress 站点编辑器的首页的四个模板选项。

这为您的主题用户提供了构建模板的真正不错的入门途径。这意味着他们不必从头开始创建所有内容,并且可以沿着正确的路径开始。

如何创建模板类型模式

与页面模式不同,您通常不会将任何模式设置为模板模式。这些是整个模板的起点,因此其用例更加有限和具体。

由于模板模式代表整个模板,因此您通常会包含全局元素,如页眉、页脚、侧边栏以及您的主题模板显示的其他部分。

正如在注册模式中指出的那样,您的模板模式需要一个必需的单个头字段(和一个可选字段):

  • 模板类型: 一个或多个模板类型,用逗号分隔,模式应与之关联。
  • 插入器: (可选) 通常,您不希望模板模式可通过插入器使用。要禁用此功能,将其设置为 no 或 false。

假设您创建了一个适用于首页或主页模板的模式。这是虚构的 /patterns/home-template.php 文件的外观:

<?php
/**
 * Title: Home Template
 * Slug: themeslug/home-template
 * Template Types: front-page, home
 * Viewport width: 1376
 * Inserter: no
 */
?>
<!-- Block code here. -->

从那时起,任何用户尝试从 WordPress 站点编辑器创建新首页或主页模板时,都会以您的模板模式作为起点。

支持的模板类型

以下列表包括您可以通过 模板类型 字段定义的模板,但您可以始终参考模板层次结构文档以获取模板的完整概述:

  • index
  • home
  • front-page
  • singular
  • single
  • page
  • archive
  • author
  • category
  • taxonomy
  • date
  • tag
  • attachment
  • search
  • privacy-policy
  • 404

在模板中使用模板模式

创建自定义模板模式时,也有意义在您的模板中重用这些模式。为什么要重写代码?

想象一下,您创建了一个既可作为主页和索引模板使用的模板模式。它将如下所示:

<?php
/**
 * Title: Index Template
 * Slug: themeslug/index-template
 * Template Types: home, index
 * Viewport width: 1376
 * Inserter: no
 */
?>
<!-- Block code here. -->

现在假设您在主题中包含了一个 /templates/index.html 模板。与其在两个地方添加代码,您可以简单地从模板文件中调用模式:

<!-- wp:pattern {"slug":"themeslug/index-template"} /-->

要了解有关在模板中包含模式的更多信息,请查看模板中的用法文档。