我有几个用Node.js编写的机器人,可以自动生成HTML内容,并使用REST API将其放入多个Wordpress网站。最近,Wordpress 5.0已正式发布,而Gutenberg已成为默认编辑器。所有旧帖子以及由机器人生成的帖子,都将封装在一个“经典”块中。
我们大多数人已经知道,应该添加其他标记以将HTML元素转换为块,并且在Gutenberg UI中有一个“转换为块”按钮以将其转换为块。是否有任何方便的方法(例如利用内置函数)以编程方式执行与“转换为块”相同的操作,还是我们应该将那些与古腾堡相关的标记逐一包装?任何帮助都应感谢
答案 0 :(得分:1)
也许这有点晚了,但是如果有人仍在寻找解决方案,这就是您的做法。
此代码假定您的经典代码块是第一个代码块:
var block = wp.data
.select("core/editor")
.getBlocks()[0];
wp.data.dispatch( 'core/editor' ).replaceBlocks(block.clientId, wp.blocks.rawHandler(
{ HTML: wp.blocks.getBlockContent( block ) }
));
如果要对所有经典块执行此操作,只需迭代整个块并查找块名core/freeform
即可将其转换为:
wp.data.select("core/editor").getBlocks().forEach(function(block, blockIndex){
if (block.name === "core/freeform"){
wp.data.dispatch( 'core/editor' ).replaceBlocks(block.clientId, wp.blocks.rawHandler(
{ HTML: wp.blocks.getBlockContent( block ) }
));
}
})