WordPress php添加内置的古腾堡(Gutenberg)模块

在创建自定义古腾堡(Gutenberg)模块时,想插入编辑器中自带的模块,如按钮组,介绍一种简单有效的方式。

打开编辑器的代码模式,复制模块化代码。如:

<!-- wp:paragraph -->
<p>Hello World!</p>
<!-- /wp:paragraph -->

在需要显示模块的地方,用php输出。

<?php
  echo "<!-- wp:paragraph --><p>Hello World!</p><!-- /wp:paragraph -->";
?>

按理说,WordPress应该有类似创建模块的函数,查询了半天,只看到类似parse_blocks()render_block()的功能,都与$post相关,满足不了需求。

略微瞅了下源码,js方面有createBlock函数。参考示例:

let block = wp.blocks.createBlock( 'core/paragraph', { content: 'hello world' } );
wp.data.dispatch( 'core/editor' ).insertBlocks( block );

暂时没有做测试,有兴趣的可以研究下。

推荐

WordPress三步快速开发自定义古腾堡区块