Intereting Posts
Медиа отображается в списке, но не в gridview всякий раз, когда я активирую пользовательскую тему Создать запись в пользовательскую регистрацию Отображение силы WooCommerce для адресов базовых адресов страны Включаемая функция и проверка активации? Как я могу выполнить настройки при регистрации, регистрации и форме восстановления пароля? Почему YoastSEO не позволяет мне указать заголовок / описание для главной страницы? Категории показывают ошибку 404 при многоуровневой установке вывод коротких кодов перед контентом Выполнять запрос с датой meta_value Загрузка содержимого index.php, которое находится за пределами папки блога для отдельной страницы Многоузловая установка на ВВВ с коренными породами Как сохранить и получить метаданные в приложении? нормально ли удалять по умолчанию родительскую таблицу стилей из пользовательских шаблонов страниц в дочерней теме? /wp-admin/install.php перенаправление на 123-reg is_home () vs is_archive ()

Как загрузить wp_editor через AJAX

Кто-нибудь знает, как загрузить wp_editor через AJAX в WordPress?

Моя разметка и редактор загружаются должным образом, но элементы управления редактором не загружаются должным образом, возможно, это связано с тем, что Javascript не работает в вызове AJAX.

Любая помощь будет оценена по достоинству.

Основная проблема – отсутствующие сценарии. Сценарии, _WP_Editors::enqueue_scripts() в _WP_Editors::enqueue_scripts() , никогда не печатаются. То же самое верно для _WP_Editors::editor_js() .

Поэтому вы должны сделать это в обработчике обратного вызова AJAX. Я написал демо-плагин и поместил его в GitHub: T5 AJAX Editor .

Существует один класс Ajax_Editor . Его метод render() выводит редактор на запросы AJAX.

 public function render() { if ( ! $this->validator->is_valid( TRUE ) ) die( 'nope' ); wp_editor( $this->data->get(), $this->editor_id, $this->settings ); \_WP_Editors::enqueue_scripts(); print_footer_scripts(); \_WP_Editors::editor_js(); die(); } 

Точный порядок важен, и не забывайте, что die() в конце. Что еще не работает, это загрузка мультимедиа. Когда я пытаюсь включить это, я получаю ошибку JavaScript.

Обратите внимание, что вызов print_footer_scripts(); даст вам больше, чем вы ожидали: некоторые плагины (например, Monitor Query) регистрируют свои скрипты даже для запросов AJAX, даже если они им не нужны.

После борьбы с ним, нашел однострочное решение, которое работает, в обратном вызове добавьте:

 tinymce.execCommand( 'mceAddEditor', true, element.id ); 

Не знаю, почему я не смог найти документацию внутри tinymce.