Intereting Posts
add_action insert html WordPress, модульный контент и синдикация Какие проблемы могут возникнуть, если я удалю префикс «wp-» из папок и файлов WordPress? Два способа создания страниц WordPress если учетная запись добавляет плату в общую сумму Как перевести строки __ ('') в admin Как я могу сделать свои пользовательские сообщения в своем URL-адресе назначенной категории? Как показать контент из плагина с использованием шаблона, на котором в данный момент работает сайт? Отключить вкладки сообщений JQuery UI Как добавить теги post в новый элемент <meta> в header.php? Как добавить изображения, загруженные в сообщение, в настраиваемое поле по умолчанию HTML-таблица из короткого кода с несколькими параметрами Как обрабатывать структуру страницы / таксономии / сообщения без того, чтобы wordpress путался с URL-адресом Как я обновляю тему WordPress и плагины Добавление «Запомнить меня» в пользовательском логине

Как создать редактор 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

Благодаря комментарию Якова Пити я могу ответить на это только с помощью 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);