当前浏览:首页 / WordPress函数 / register_block_pattern()

register_block_pattern( string $pattern_name, array $pattern_properties )

注册新的区块模式

block

registermore...


参数

$pattern_name

(string) (必填) 区块模式名称,包括命名空间。

$pattern_properties

(array) (必填) 块状模式的属性列表。有关可接受的参数,请参阅WP_Block_Patterns_Registry::register()


返回

(bool) 如果模式注册成功,则为true,否则为false。



源码

查看源码 官方文档


更新日志

版本描述
5.5.0开始引入

使用示例

  • 示例1

    根据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 -->",
        )
    );
  • 示例2

    文档和这本手册似乎没有提及,但我认为应该从连接到init挂钩的处理程序调用register_block_pattern()

    function wpdocs_register_my_patterns() {
      register_block_pattern( ... );
    }
    
    add_action( 'init', 'wpdocs_register_my_patterns' );
    
  • 示例3

    如果通过以下方式移除区块模式:

    remove_theme_support( 'core-block-patterns' );

    确保至少注册了一个区块模式类别。如果不存在区块编辑器,则区块编辑器崩溃。

  • 示例4

    如何注册新区块模式的基本示例。

    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' );