有一个实验性的Innerblocks特性(__experimentalTemplateOptions) 我不确定这是否也会影响帖子模板。
在任何情况下,我认为这都不能解决您的问题,即您希望即使在初始选择模板之后,布局也会发生变化。在这种情况下,编辑器可能会拥有包含用户输入内容的块,甚至是额外的块。因此,更改模板可能会替换这些。考虑到这一点,使用新模板更新当前块的方法可以是:
使用新模板值更新编辑器设置
wp.data.dispatch("core/block-editor").updateSettings({ template:new_template })
然后同步模板
wp.data.dispatch("core/block-editor").synchronizeTemplate()
如果您检查减速器壳体
SYNCHRONIZE_TEMPLATE
上述操作实际上与以下操作相同:
const blocks = wp.data.select("core/block-editor").getBlocks();
const updatedBlockList = wp.blocks.synchronizeBlocksWithTemplate( blocks, new_template );
wp.dispatch("core/block-editor").resetBlocks( updatedBlockList );
我还没有测试代码,但我认为传递的参数是正确的。希望这能帮你解决问题。