Изменить содержимое в редакторе Гутенберга с помощью JavaScript - PullRequest
2 голосов
/ 10 апреля 2019

Ранее с 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?

...