参数
- $pattern_name
-
(string) (必填) 区块模式名称,包括命名空间。
- $pattern_properties
-
(array) (必填) 块状模式的属性列表。有关可接受的参数,请参阅WP_Block_Patterns_Registry::register()。
返回
(bool) 如果模式注册成功,则为true,否则为false。
源码
更新日志
版本 | 描述 |
---|---|
5.5.0 | 开始引入 |
使用示例
根据Block Patterns documentation in the Block Editor Handbook,$pattern_properties 数组包括:
- title (必填):模式的可读标题。
- content (必填):模式的原始HTML内容。
- description: 用于描述模式的视觉隐藏文本。描述是可选的,但当标题不能完全描述模式的功能时,强烈建议使用。
- categories:用于分组区块模式的模式类别列表,区块模式可以显示在多个类别上。
- keywords:别名或关键词,帮助用户在搜索时发现。
- viewportWidth:指定模式的宽度。
给出的示例函数为:
register_block_pattern( 'wpdocs-my-plugin/my-awesome-pattern', array( 'title' => __( 'Two buttons', 'wpdocs-my-plugin' ), 'description' => _x( 'Two horizontal buttons, the left button is filled in, and the right button is outlined.', 'Block pattern description', 'wpdocs-my-plugin' ), 'content' => "<!-- wp:buttons {\"align\":\"center\"} -->\n<div class=\"wp-block-buttons aligncenter\"><!-- wp:button {\"backgroundColor\":\"very-dark-gray\",\"borderRadius\":0} -->\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background has-very-dark-gray-background-color no-border-radius\">" . esc_html__( 'Button One', 'wpdocs-my-plugin' ) . "</a></div>\n<!-- /wp:button -->\n\n<!-- wp:button {\"textColor\":\"very-dark-gray\",\"borderRadius\":0,\"className\":\"is-style-outline\"} -->\n<div class=\"wp-block-button is-style-outline\"><a class=\"wp-block-button__link has-text-color has-very-dark-gray-color no-border-radius\">" . esc_html__( 'Button Two', 'wpdocs-my-plugin' ) . "</a></div>\n<!-- /wp:button --></div>\n<!-- /wp:buttons -->", ) );
文档和这本手册似乎没有提及,但我认为应该从连接到
init
挂钩的处理程序调用register_block_pattern()
。function wpdocs_register_my_patterns() { register_block_pattern( ... ); } add_action( 'init', 'wpdocs_register_my_patterns' );
如果通过以下方式移除区块模式:
remove_theme_support( 'core-block-patterns' );
确保至少注册了一个区块模式类别。如果不存在区块编辑器,则区块编辑器崩溃。
如何注册新区块模式的基本示例。
function wpdocs_register_block_patterns() { register_block_pattern( 'wpdocs/my-example', array( 'title' => __( 'My First Block Pattern', 'textdomain' ), 'description' => _x( 'This is my first block pattern', 'Block pattern description', 'textdomain' ), 'content' => '<!-- wp:paragraph --><p>A single paragraph block style</p><!-- /wp:paragraph -->', 'categories' => array( 'text' ), 'keywords' => array( 'cta', 'demo', 'example' ), 'viewportWidth' => 800, ) ); } add_action( 'init', 'wpdocs_register_block_patterns' );