Как перерисовать блок Wordpress Guttenberg? - PullRequest
1 голос
/ 21 мая 2019

Я создаю собственный плагин WP, который работает с редактором Гуттенберга.Одна из функций заключается в том, что пользователь выбирает часть текста в редакторе.Нажмите на кнопку.JS возьмет выделенный текст, обработает его и заменит выбранный код пользовательской строкой короткого кода.Например, у нас есть текст

Lorem ipsum Custom Word и другие слова

Пользователь выбирает «Custom Word», нажимает на кнопку и js динамически заменяет его на

Lorem ipsum [custom_shortcode title = "Custom Word"] и другие слова

Я устанавливаю содержимое блока с отредактированным содержимым с помощью jQuery следующим образом:

var all_content =    tinyMCE.activeEditor.getContent();
all_content = all_content.replace( string_to_replace, shortcode_string );
tinymce.activeEditor.setContent( all_content )

Я думаю, чтоне правильный способ применить контент к блоку.

ТАК, что все работает нормально.Проблема становится, когда я нажимаю Сохранить или Предварительный просмотр

Окончательный результат не сохраняет мой вставленный код шорткода.Как я понимаю, по сути, содержимое блока не было обработано Гуттенбергом, и я просто делаю визуальную вставку в html.

Я новичок в Гуттенберге и не уверен, как мне сделать это для повторного рендеринга отредактированного блока, чтобы применить изменения.

Iv попытался после выполнения всех замен восстановить содержимое Гуттенберга с

var editedContent = wp.data.select( "core/editor" ).getEditedPostContent().content;
wp.data.dispatch( 'core/editor' ).editPost( { content: editedContent } );

Но безуспешно.Может кто-нибудь мне помочь ?TNX

...