web-dev-qa-db-ja.com

Gutenberg - カスタムスクリプトでブロックを削除/追加する

私は現在、新しいGutenbergプラグインを自分の開発したテーマとプラグインでテストしています。私のテーマは、ユーザー用のアクションを含むカスタムメタボックスを持っています。ユーザーがこのアクションをクリックすると、投稿コンテンツは完全に削除され、新しい「カスタム」コンテンツがデフォルトのtinyMceエディタに追加されます。

:tinymce.get(“ content”)。setContent(“ my custom content”);

もちろん、これは新しいGutebergエディタでは機能しなくなり、解決策を見つけるのに苦労しています。

だから基本的に私がやろうとしているのはグーテンベルクエディタからすべてのブロック/コンテンツを削除して、javascriptを通して私のカスタムコンテンツで新しいブロック(テキスト)を加えることです。誰かが私を正しい方向に向けるための何かヒントを持っていますか?

7
Benmay

おそらくもっと簡単な方法があるでしょう、そしてもしそうでなければあなたはグーテンベルクGH課題トラッカーで課題を開くべきです(APIは石に設定されていません)。

APIは基本的に設定されていないため、この回答は最終的に完成してマージされた時点では役に立たない可能性があります。 GBの質問をするための最初で最良の場所はGitHubです

あなたはこれを使用してすべてのブロックを排除することができます。

wp.data.dispatch( 'core/editor' ).resetBlocks([]);

その後、プログラムで新しいブロックを作成できます。

let block = wp.blocks.createBlock( 'core/paragraph' );

それにテキストを追加します。

block.attributes.content.Push( 'hello world' );

そしてこのように挿入してください。

wp.data.dispatch( 'core/editor' ).insertBlocks( block );

さらに詳しく調べると、もっと簡単な方法があります。

let block = wp.blocks.createBlock( 'core/paragraph', { content: 'test' } );
wp.data.dispatch( 'core/editor' ).insertBlocks( block );
9
Tom J Nowell