Gutenberg's API is quiet obscure and I can't figure how to create and append a block to a post.
I've found the wp.blocks.createBlock('core/paragraph', {content: "blabla"});
which returns a pretty block object, but does not append any content to the post.
I would like to insert a simple paragraph with some custom content just by clicking a button.
Using Your Custom Block in WordPressSimply edit any post or page where you want to use this block. Click on the add new block button and search for your block by typing its name or keywords. After you insert the block to the content area, you'll see the block fields you created for this custom block.
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);
Maybe this source code can help https://github.com/WordPress/gutenberg/blob/master/editor/components/inserter/index.js
Look at the end of the file for the part
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 );
},
To be more specific
return dispatch( 'core/editor' ).insertBlock( insertedBlock, index, rootUID );
Hope helps figuring out your problem, since it´s doing the same thing you want to achieve
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With