У мене є тема, яка розроблена на замовлення і справді складна. Одне з моїх речей - це декілька областей вмісту, де користувачі можуть вказувати вміст для певних вкладок. Я завантажую декілька примірників редактора WordPress через wp_editor()
функцію. Це прекрасно працює. (Це все на стороні адміністратора, у публікації типу "Сторінка")
Однак я почав робити декілька вдосконалень, серед яких можливість динамічно додавати / видаляти вкладки (раніше я завантажував 6 редакторів на сторінку). У користувачів може бути 1-7 вкладок.
Коли користувачі додають вкладку, їй потрібно додати примірник редактора на сторінку. Однак, що б я не намагався, я не можу змусити його завантажуватись та відображатись правильно.
Ось дві речі, які я спробував поки що:
- Створіть файл php, до якого входить завантажувальний засіб адміністратора, а потім завантажте редактор
wp_editor()
. Потім я виконую jQuery,$.load
щоб зателефонувати на сторінку та включити отриманий HTML у ту область, яку вона потребує для відображення. Це насправді не працює, оскільки кнопки форматування редакторів зникають (варто зазначити, що, перетягуючи сторінку безпосередньо вгору, редактор відображається і функціонує ідеально) - Завантажте редактор на сторінку, всередині прихованого ключа, а після того, як додається вкладка, використовуйте 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