Как создать редактор WP с помощью javascript

Я пытаюсь создать какие-то повторяющиеся поля, и для этого хочу создать новый wp-редактор с некоторым уникальным идентификатором.

Итак, мой вопрос – есть ли способ создать wp_editor используя любые js? так же, как мы используем <?php wp_editor() ?> WordPress.

Я попытался использовать

 tinyMCE .init( { mode : "exact" , elements : "accordion_icon_description_"+response.success.item_count }); 

но он печатает очень простой редактор, который, я думаю, не такой же, как в редакторе полей post post WordPress

Solutions Collecting From Web of "Как создать редактор WP с помощью javascript"

Благодаря комментарию Якова Пити я могу ответить на это только с помощью JS. На самом деле мы сделали что-то подобное, но до 4.8, и это было не так просто, поэтому в конце мы использовали wp_editor() . Но теперь вы можете сделать это, используя объект wp.editor в JavaScript . Существует 3 основные функции

  1. wp.editor.initialize = function( id, settings ) {

Где id

HTML-код текстового поля, который используется для редактора. Должен быть совместимым с jQuery. Нет скобок, специальных символов и т. Д.

и settings – либо объект

 { tinymce: { // tinymce settings }, quicktags: { buttons: '..' } } 

с этими настройками TinyMCE . Вместо любого из трех объектов (сами settings , tinymce или quicktags ) вы можете использовать true для использования значений по умолчанию.

  1. wp.editor.remove = function( id ) {

Это совершенно понятно. Удалите любой экземпляр редактора, который был создан с помощью wp.editor.initialize .

  1. wp.editor.getContent = function( id ) {

Ну, получите содержимое любого редактора, созданного с помощью wp.editor.initialize .


Использование может выглядеть так

 var countEditors = 0; $(document).on('click', 'button#addEditor', function() { var editorId = 'editor-' + countEditors; // add editor in HTML as <textarea> with id editorId // give it class wp-editor wp.editor.initialize(editorId, true); countEditors++; }); $(document).on('click', 'button.removeEditor', function() { // assuming editor is under the same parent var editorId = $(this).parent().find('.wp-editor'); wp.editor.remove(editorId); }); 

Поскольку контент будет автоматически отправлен, в этом примере он не нужен. Но вы всегда можете получить его через wp.editor.getContent( editorId )

Вам нужно использовать wp_enqueue_editor(); сначала для вывода сценариев редактора, таблиц стилей и настроек по умолчанию. Вы можете найти это документально здесь wp_enqueue_editor ()

Вам нужно удалить true из функции: wp.editor.initialize(editorId);