Ранее с TinyMCE было легко модифицировать контент, просто изменяя контент в HTML, так как TinyMCE был прикреплен к фиксированному 'div id = "content"'
Как контент можно изменить с помощью JavaScript в Гутенберге?
Я пытался изменить, используя то же самое, что я делал в TinyMCE, но это просто изменяет содержимое в HTML, а не фактическое содержимое в Gutenberg
Я извлек содержимое из блоков Gutenberg, используяследующий код.
public getContent(): string {
const editor = wp.data.select('core/editor');
let content = '';
if (editor) {
const editedContent = editor.getEditedPostContent();
const blocks = wp.blocks.parse(editedContent) as any as Block[];
if (blocks && blocks.length > 0) {
blocks.forEach((block) => {
content += this.createGutenbergBlock(block);
});
}
}
return '<blocks>' + content + '</blocks>' ;
}
private createGutenbergBlock(block: Block): string {
const innerblocks = block.innerBlocks.map((blk) => {
return this.createGutenbergBlock(blk);
}).join('');
return `<block
clientId="${block.clientId}">${block.originalContent}${innerblocks}
</block>`;
}
Мне интересно, как я могу изменить содержимое блока в Гутенберге, используя JavaScript?