Как динамически добавить textarea и преобразовать её в редактор tinyMCE в WordPress с помощью JavaScript?
У меня есть плагин, который позволяет пользователю динамически добавлять секции, где должно быть поле tinyMCE редактора. jQuery клонирует div
и помещает его в контейнер. Одно из полей ввода — это textarea, настроенная следующим образом:
<textarea name="sectionContent_1" id="sectionContent_1"></textarea>
Мне нужно заменить textarea на редактор tinyMCE.
Я изучил:
Как загрузить wp_editor() через AJAX/jQuery и использование wp_editor WordPress в динамическом/AJAX HTML
Ни один из этих вариантов не сработал в моём случае.
Я пробовал этот код внутри обработчика, который добавляет секцию с textarea:
$(this).parent().find('.sectionOptions').html(ctHolder);
var textAreaID = 'sectionContent_'+sectionID;
tinyMCE.execCommand('mceRemoveEditor', true, textAreaID);
tinyMCE.execCommand('mceAddControl', false, textAreaID);
Здесь я добавляю клонированные данные (ctHolder) в .sectionOptions
, устанавливаю ID для textarea, сбрасываю редактор для этого ID, затем добавляю управление для этого ID... это не работает, но кажется наиболее распространённым советом.
Это сработало:
var textAreaID = 'sectionContent_' + sectionID;
$(this).parent()
.find('.sectionOptions')
.html(ctHolder).ready(
function() {
tinyMCE.execCommand('mceAddEditor', false, textAreaID);
}
);
WordPress 3.9 использует tinyMCE 4.x, поэтому "mceAddControl" был заменён на "mceAddEditor". Кроме того, я поместил вызов внутрь функции ready, чтобы jQuery не запускал tinyMCE до тех пор, пока текстовое поле не будет загружено в DOM.
