gutenbergdocs/docs/how-to-guides/curating-the-editor-experience/patterns.md
2025-10-22 01:40:18 +08:00

90 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 模式
区块[模式](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-patterns/)是为用户提供独特定制编辑体验的最佳方式之一。
## 为所有文章类型优先设置起始模式
当用户创建新内容时,无论文章类型如何,都会面对一个空白画布。然而,通过设置特定类型的模式在创建新内容时优先显示,可以改善这一体验。当网站中存在声明支持`core/post-content`区块类型的模式时用户每次创建新项目都会出现模态窗口。默认情况下WordPress不包含任何此类模式因此除非至少添加了两个此类文章内容模式否则模态窗口不会出现。
要启用此功能,请在模式的区块类型中包含`core/post-content`。然后,可以通过文章类型选项控制模式应显示的文章类型。以下是一个在创建新文章时出现的模式示例:
```php
<?php
/**
* 标题:新活动公告
* 别名twentytwentytwo/new-event-announcement
* 区块类型core/post-content
* 文章类型post
* 分类featured, text
*/
?>
<!-- wp:heading {"lock":{"move":false,"remove":true}} -->
<h2>详情</h2>
<!-- /wp:heading -->
<!-- wp:heading {"lock":{"move":false,"remove":true}} -->
<h2>路线指引</h2>
<!-- /wp:heading -->
<!-- wp:heading {"lock":{"move":false,"remove":true}} -->
<h2>预约确认</h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"lock":{"move":true,"remove":true}} -->
<p>如需确认预约请加入Make Slack中的#fse-outreach-experiment频道。</p>
<!-- /wp:paragraph -->
<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button {"lock":{"move":true,"remove":false}} -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button">了解更多</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->
<!-- wp:cover {"useFeaturedImage":true,"dimRatio":80,"overlayColor":"primary","contentPosition":"center center","align":"full"} -->
<div class="wp-block-cover alignfull"><span aria-hidden="true" class="wp-block-cover__background has-primary-background-color has-background-dim-80 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:paragraph {"align":"center","placeholder":"输入标题…","fontSize":"large"} -->
<p class="has-text-align-center has-large-font-size">期待您的参与!</p>
<!-- /wp:paragraph --></div></div>
<!-- /wp:cover -->
```
在[WordPress 6.0开发说明中的页面创建模式](https://make.wordpress.org/core/2022/05/03/page-creation-patterns-in-wordpress-6-0/)中了解更多关于此功能的信息,并[注意WordPress 6.1将此功能扩展到所有文章类型](https://make.wordpress.org/core/2022/10/10/miscellaneous-editor-changes-for-wordpress-6-1/#start-content-patterns-for-all-post-types)。
## 为模板创建优先设置起始模式
与为新文章或页面优先设置模式类似,同样的体验可以添加到模板创建过程中。当模式声明支持'templateTypes'属性时只要创建了符合指定条件的模板这些模式就会出现同时提供从空白状态开始或使用当前模板回退选项的选择。默认情况下WordPress不包含任何此类模式。
要启用此功能,模式需要指定一个名为`templateTypes`的属性这是一个包含可使用该模式作为完整内容的模板数组。以下是一个在创建404模板时出现的模式示例
```php
register_block_pattern(
'wp-my-theme/404-template-pattern',
array(
'title' => __( '404专用模板模式', 'wp-my-theme' ),
'templateTypes' => array( '404' ),
'content' => '<!-- wp:paragraph {"align":"center","fontSize":"x-large"} --><p class="has-text-align-center has-x-large-font-size">404模式</p><!-- /wp:paragraph -->',
)
);
```
在[WordPress 6.3开发说明中的新建模板模态窗口模式](https://make.wordpress.org/core/2023/07/18/miscellaneous-editor-changes-in-wordpress-6-3/#patterns-on-the-create-a-new-template-modal)中了解更多关于此功能的信息。
## 锁定模式
如先前关于锁定API的部分所述模式本身的某些方面可以被锁定以保护设计的重要部分。[这里有一个模式示例](https://gist.github.com/annezazu/acee30f8b6e8995e1b1a52796e6ef805),其中包含以不同方式锁定的各种区块。您可以在编辑器中构建这些模式,包括添加锁定选项,然后[按照文档注册它们](/docs/reference-guides/block-api/block-patterns.md)。
## 从模式目录中优先选择特定模式
从WordPress 6.0开始主题可以通过theme.json从[模式目录](https://wordpress.org/patterns/)注册模式。为实现这一点主题应使用theme.json中新的patterns顶级键。在此字段中主题可以列出要从模式目录注册的模式。patterns字段是模式目录中模式别名的数组。模式别名可以从模式目录中单个模式视图的URL中提取。例如此URL https://wordpress.org/patterns/pattern/partner-logos 的别名是partner-logos。
```json
{
"patterns": [ "short-text-surrounded-by-round-images", "partner-logos" ]
}
```
内容创建者随后将在插入器的“模式”选项卡中,找到与模式目录分类匹配的相应模式。
## 附加资源
- [使用模板模式构建多个首页设计](https://developer.wordpress.org/news/2023/04/13/using-template-patterns-to-build-multiple-homepage-designs/)WordPress开发者博客