У меня есть тема, которая специально разработана и действительно сложна. Одна из вещей, которые у меня есть, это несколько областей контента, где пользователи могут указывать контент для определенных вкладок. Я загружаю несколько экземпляров редактора WordPress через wp_editor()
функцию. Работает отлично. (Это все на стороне администратора, в типе поста "Страница")
Однако я начал вносить некоторые улучшения, в том числе возможность динамически добавлять / удалять вкладки (раньше я загружал 6 редакторов на странице). Пользователи могут иметь 1-7 вкладок.
Когда пользователи добавляют вкладку, она должна добавить экземпляр редактора на страницу. Однако, что бы я ни пытался, я не могу заставить его загружаться и отображаться правильно.
Вот две вещи, которые я пробовал до сих пор:
- Создайте php-файл с включенной начальной загрузкой администратора, а затем загрузите редактор с помощью
wp_editor()
. Затем я делаю jQuery$.load
для вызова страницы и включаю полученный HTML-код в область, которая должна отображаться. Однако это не работает, так как кнопки форматирования редакторов исчезают (стоит отметить, что при перетягивании страницы вверх редактор отображается и работает отлично) - Загрузите редактор на странице, внутри скрытого элемента div, а затем, после добавления вкладки, используйте jquery, чтобы переместить ее на место. Это загружает редактор в такт, но вы не можете использовать любую из кнопок редактора (они отображаются, но ничего не делают), и вы не можете поместить курсор в текстовую область (любопытно, однако, что переход в режим HTML позволяет печатать и немного взаимодействовать с кнопками режима HTML)
Итак, вопрос в том, кому-нибудь повезло, добавив редакторов через вызовы AJAX? Любой совет?
$('#sph-tabs-section-tab'+newTab).load('/wp-admin/admin-ajax.php?action=sph_add_editor');
а затем добавил функцию, которая возвращает wp_editor()
. Он вызывается без проблем, но все равно возвращает только редактор без кнопок. (точно такие же результаты, как в пункте 1 в ОП)
admin-ajax.php
? Если не сделать функцию с вашим кодом, то вызовите его черезadmin-ajax.php