对于我的一个项目,我正在尝试在自定义页面模板上使用预定义的 Gutenberg 块。我使用 Block Lab WP Plugin 创建自定义 Gutenberg 块。但是当我在页面模板上使用时,它不起作用。
是否可以在页面模板上使用古腾堡块?所以当有人更改页面模板时,它可以立即使用吗?
提前致谢
对于我的一个项目,我正在尝试在自定义页面模板上使用预定义的 Gutenberg 块。我使用 Block Lab WP Plugin 创建自定义 Gutenberg 块。但是当我在页面模板上使用时,它不起作用。
是否可以在页面模板上使用古腾堡块?所以当有人更改页面模板时,它可以立即使用吗?
提前致谢
您需要对块使用自定义帖子类型。它的作用是您可以注册自己的帖子模板,其中包含预定义的块。我相信这就是您正在寻找的。这是一个例子 -
function myplugin_register_book_post_type() {
$args = array(
'public' => true,
'label' => 'Books',
'show_in_rest' => true,
'template' => array(
array( 'core/image', array(
'align' => 'left',
) ),
array( 'core/heading', array(
'placeholder' => 'Add Author...',
) ),
array( 'core/paragraph', array(
'placeholder' => 'Add Description...',
) ),
),
);
register_post_type( 'book', $args );
}
add_action( 'init', 'myplugin_register_book_post_type' );
这个函数注册一个 CPT 和 via 模板选项,指定哪个块在它里面。您可以锁定(不允许外部块)、松散锁定(允许某些块)或允许插入其他块。
Gutenberg 尚不支持真实页面模板。
但我也为此制作了一个小插件来研究这个想法。您可以下载并测试它。但是,它适用于了解 Gutenberg(有点)并且可以修改/扩展此插件的开发人员。并且肯定还没有准备好投入生产。
它将创建一个 CPT“页面模板”,您可以在其中定义页面模板块。当您在“页面”中时,创建一个新页面,然后从(新)右上角的侧边栏中选择页面模板。