You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求将Block Editor内容转为register_block_type可用模板数组的方法

将Gutenberg块HTML转换为自定义文章类型/Block模板数组

需求

我需要把在Gutenberg编辑器中设计的块,或是保存为.html模板文件的块,转换成注册自定义文章类型或block.json时可用的模板数组。如果有大量嵌套块,手动编写包含所有支持项和属性的模板会非常繁琐。

示例:Gutenberg中的块HTML

<!-- wp:heading {"level":1,"className":"display-4"} -->
<h1 class="wp-block-heading display-4">Hello World</h1>
<!-- /wp:heading -->

目标模板格式(需手动编写的结构)

function myplugin_register_book_post_type() {
    $args = array(
        // 其他参数
        'template' => array(
            array( 'core/heading', array(
                'level' => 1,
                'className' => 'display-4'
            ) )
        ),
        'template_lock' => 'insert'
    );
    register_post_type( 'book', $args );
}
add_action( 'init', 'myplugin_register_book_post_type' );

尝试过的方案及问题

我试过用parse_blocks()函数直接转换,但输出格式不符合模板的要求:

function myplugin_register_book_post_type() {
    $args = array(
        'template' => parse_blocks('<!-- wp:heading {"level":1,"className":"display-4"} -->
<h1 class="wp-block-heading display-4">Hello World</h1>
<!-- /wp:heading -->'),
        'template_lock' => 'insert'
    );
    register_post_type( 'book', $args );
}
add_action( 'init', 'myplugin_register_book_post_type' );

求助

希望找到一个PHP或JS函数,能将Block HTML直接转换成符合要求的模板数组。既然FSE主题编辑器可以为特定文章创建模板,我推测WordPress核心里应该存在这类转换逻辑,但我查看核心代码、查阅文档及搜索时,因为WordPress中"Template"通常指主题模板文件而非块注册模板,很难找到有效结果。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:32:32