it-swarm.com.ru

Гутенберг - удалить/добавить блоки с помощью собственного скрипта

В настоящее время я тестирую новый плагин Gutenberg со своей собственной разработанной темой и плагином. В моей теме есть собственное мета-поле с действием для пользователя. После того, как пользователь щелкнет по этому действию, содержимое публикации будет полностью удалено, а новый "пользовательский" контент будет добавлен в стандартный редактор tinyMce.

Пример: tinymce.get ("контент"). SetContent ("мой пользовательский контент");

Это, конечно, больше не работает с новым редактором Guteberg, и я изо всех сил пытаюсь найти решение.

Итак, в основном я пытаюсь удалить весь блок/контент из редактора Гутенберга и добавить новый блок (текст) с моим пользовательским контентом через javascript. У кого-нибудь есть подсказка, чтобы указать мне правильное направление?

7
Benmay

Вероятно, есть более простой способ сделать это, и если его нет, вы должны открыть проблему на трекере проблем Gutenberg 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