在WordPress 5.5中,區(qū)塊編輯器Gutenberg引入了一個(gè)稱為塊模型(Block Patterns)的新概念。目的是允許用戶構(gòu)建和共享預(yù)定義的塊布局,從而可以更輕松地進(jìn)行插入和調(diào)整。
您可以在塊插入器上找到已注冊(cè)的塊模型,然后像其他任何塊一樣將其添加到文章/頁(yè)面中。

注冊(cè)塊模型
WordPress 5.5附帶了許多內(nèi)置的塊模型,但是第三方插件和主題也可以注冊(cè)其他塊模型或刪除現(xiàn)有的塊模型。
要注冊(cè)自定義塊模型,可以調(diào)用register_block_pattern函數(shù)以將模型名稱作為第一個(gè)參數(shù),將描述模型屬性的數(shù)組作為第二個(gè)參數(shù)。塊模型的屬性包括標(biāo)題、描述、分類、可能的其他關(guān)鍵字以及模型的內(nèi)容。
function my_plugin_register_block_patterns() {
register_block_pattern(
'my-plugin/my-awesome-pattern',
array(
'title' => __( 'Two buttons', 'my-plugin' ),
'description' => _x( 'Two horizontal buttons, the left button is filled in, and the right button is outlined.', 'Block pattern description', 'my-plugin' ),
'categories' => array( 'buttons' ),
'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', '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', 'my-plugin' ) . "</a></div>\n<!-- /wp:button --></div>\n<!-- /wp:buttons -->",
)
);
}
add_action( 'init', 'my_plugin_register_block_patterns' );
注銷塊模型
unregister_block_pattern允許取消使用先前通過(guò)register_block_pattern 注冊(cè)的模型。
該函數(shù)的參數(shù)是模型的注冊(cè)名稱。
以下代碼示例注銷了名為“my-plugin/my-awesome-pattern”的模型:
unregister_block_pattern( 'my-plugin/my-awesome-pattern' );
注銷所有核心塊模型
盡管WordPress內(nèi)置了許多塊模型,但主題作者可能希望注銷內(nèi)置的塊模型并提供自己的。
您可以通過(guò)刪除core-block-patterns主題支持標(biāo)志來(lái)實(shí)現(xiàn)。
remove_theme_support( 'core-block-patterns' );
塊模型分類
可以使用分類對(duì)塊模式進(jìn)行分組。塊編輯器帶有捆綁的類別,您可以在自定義塊模式中使用它們。您也可以注冊(cè)自己的模式類別。
注冊(cè)塊模型分類
register_block_pattern_category函數(shù)將分類名稱作為第一個(gè)參數(shù),將描述分類屬性的數(shù)組作為第二個(gè)參數(shù)。
模型分類的屬性包括:
–?label(必需):供人類閱讀的分類名稱。
register_block_pattern_category(
'hero',
array( 'label' => __( 'Hero', 'my-plugin' ) )
);
注銷塊模型分類
unregister_block_pattern_category?允許注銷塊模型分類。
該函數(shù)的參數(shù)是要取消注冊(cè)的模型分類的名稱。
以下代碼示例注銷了名為“hero”的分類:
unregister_block_pattern_category( 'hero' );
要了解塊模型的更多信息,可訪問(wèn)官方文檔。




