在InnerBlocks模板中更改块类型而不会丢失内容

时间:2019-02-21 20:46:59

标签: wordpress wordpress-gutenberg gutenberg-blocks

我有一个使用InnerBlocks包含其他块的块类型,其输出由InnerBlocks模板生成(类似于列核心块)。我希望能够将其中一个块更改为另一种块类型(已定义转换的一种),但是当我这样做时,内容将被删除。

有没有办法做到这一点?

以类推的方式,如果核心列块具有子块“ column-third”和“ column-half”,那么有一种方法可以将两个“ column-half”更改为三个“ column-third”不会丢失数据?

为进一步推论,假设我克隆了核心columnscolumn块,并按如下方式修改了column块:

模板生成功能:

     |    A    |
1    |   Cat   |
2    |         |
3    |  Tiger  |
4    |  Lion   |
5    |  Lynx   |
6    |         |
7    |         |


     |    A    |
1    |    K9   |
2    |         |
3    |  Wolf   |
4    |  Fox    |
5    |  Dog    |
6    | Big Dog |
7    | Good Boi|

和编辑功能中的RangeControl:

var childBlockName = 'core/column';
const getColumnsTemplate = memoize( ( columns ) => {
    return times( columns, () => [ childBlockName ] );
} );

core / column和coreclone / column相同。在此示例中,当我更改列数时,模板中的子块类型也会更改。 core / column块不会转换为coreclone / column块,它们只会被擦除,而会创建新的coreclone / column块。我希望将它们转换为coreclone / column块,而不会擦除内容。

0 个答案:

没有答案