如何 "manually" (以编程方式)在古腾堡中插入一个块?
How to "manually" (programmatically) insert a block in Gutenberg?
Gutenberg 的 API 非常晦涩,我不知道如何创建块并将其附加到 post。
我找到了 wp.blocks.createBlock('core/paragraph', {content: "blabla"});
,其中 returns 是一个漂亮的块对象,但没有将任何内容附加到 post。
我想通过单击按钮插入一个带有一些自定义内容的简单段落。
也许这个源代码可以提供帮助https://github.com/WordPress/gutenberg/blob/master/editor/components/inserter/index.js
查看文件末尾部分
onInsertBlock: ( item ) => {
const { insertionPoint, selectedBlock } = ownProps;
const { index, rootUID, layout } = insertionPoint;
const { name, initialAttributes } = item;
const insertedBlock = createBlock( name, { ...initialAttributes, layout } );
if ( selectedBlock && isUnmodifiedDefaultBlock( selectedBlock ) ) {
return dispatch( 'core/editor' ).replaceBlocks( selectedBlock.uid, insertedBlock );
}
return dispatch( 'core/editor' ).insertBlock( insertedBlock, index, rootUID );
},
更具体
return dispatch( 'core/editor' ).insertBlock( insertedBlock, index, rootUID );
希望能帮助解决您的问题,因为它正在做您想要实现的相同事情
var content = "Test content";
var el = wp.element.createElement;
var name = 'core/paragraph';
// var name = 'core/html';
insertedBlock = wp.blocks.createBlock(name, {
content: content,
});
wp.data.dispatch('core/editor').insertBlocks(insertedBlock);
Gutenberg 的 API 非常晦涩,我不知道如何创建块并将其附加到 post。
我找到了 wp.blocks.createBlock('core/paragraph', {content: "blabla"});
,其中 returns 是一个漂亮的块对象,但没有将任何内容附加到 post。
我想通过单击按钮插入一个带有一些自定义内容的简单段落。
也许这个源代码可以提供帮助https://github.com/WordPress/gutenberg/blob/master/editor/components/inserter/index.js
查看文件末尾部分
onInsertBlock: ( item ) => {
const { insertionPoint, selectedBlock } = ownProps;
const { index, rootUID, layout } = insertionPoint;
const { name, initialAttributes } = item;
const insertedBlock = createBlock( name, { ...initialAttributes, layout } );
if ( selectedBlock && isUnmodifiedDefaultBlock( selectedBlock ) ) {
return dispatch( 'core/editor' ).replaceBlocks( selectedBlock.uid, insertedBlock );
}
return dispatch( 'core/editor' ).insertBlock( insertedBlock, index, rootUID );
},
更具体
return dispatch( 'core/editor' ).insertBlock( insertedBlock, index, rootUID );
希望能帮助解决您的问题,因为它正在做您想要实现的相同事情
var content = "Test content";
var el = wp.element.createElement;
var name = 'core/paragraph';
// var name = 'core/html';
insertedBlock = wp.blocks.createBlock(name, {
content: content,
});
wp.data.dispatch('core/editor').insertBlocks(insertedBlock);