Al agregar dinámicamente un textarea con JavaScript, ¿cómo renderizarlo como editor tinyMCE en WordPress?
Tengo un plugin que permite al usuario agregar dinámicamente secciones que necesitan tener el editor tinyMCE. jQuery clona un div
y lo coloca en un contenedor. Uno de los campos es un textarea configurado así:
<textarea name="sectionContent_1" id="sectionContent_1"></textarea>
Necesito reemplazar el textarea con el editor tinyMCE.
He revisado:
Cómo cargar wp_editor() mediante AJAX/jQuery y usar wp_editor de WordPress en HTML dinámico/ajax
Ninguna de estas soluciones parece funcionar para nosotros
He intentado esto dentro del trigger que llama para agregar la sección del textarea:
$(this).parent().find('.sectionOptions').html(ctHolder);
var textAreaID = 'sectionContent_'+sectionID;
tinyMCE.execCommand('mceRemoveEditor', true, textAreaID);
tinyMCE.execCommand('mceAddControl', false, textAreaID);
En este código, estoy agregando los datos clonados (ctHolder) al .sectionOptions
, configurando el ID del textarea, reiniciando el editor en el ID y luego agregando control al ID... esto no funciona pero parece ser la sugerencia más común.
Esto funcionó:
var textAreaID = 'sectionContent_' + sectionID;
$(this).parent()
.find('.sectionOptions')
.html(ctHolder).ready(
function() {
tinyMCE.execCommand('mceAddEditor', false, textAreaID);
}
);
WordPress 3.9 usa tinyMCE 4.x, por lo que "mceAddControl" fue cambiado a "mceAddEditor". Además, coloqué la llamada dentro de una función ready para que jQuery no ejecutara tinyMCE hasta después de cargar el textarea en el DOM.
