Come rendere un textarea dinamico come editor tinyMCE in WordPress usando JavaScript?
Ho un plugin che permette all'utente di aggiungere dinamicamente sezioni che devono contenere l'editor tinyMCE. jQuery clona un div
e lo posiziona in un contenitore. Una delle caselle di input è un textarea impostato così:
<textarea name="sectionContent_1" id="sectionContent_1"></textarea>
Devo sostituire il textarea con l'editor tinyMCE.
Ho consultato:
Come caricare wp_editor() tramite AJAX/jQuery e usare wp_editor di WordPress in html dinamico/ajax
Nessuno di questi sembra funzionare nel nostro caso
Ho provato questo all'interno del trigger che aggiunge la sezione textarea:
$(this).parent().find('.sectionOptions').html(ctHolder);
var textAreaID = 'sectionContent_'+sectionID;
tinyMCE.execCommand('mceRemoveEditor', true, textAreaID);
tinyMCE.execCommand('mceAddControl', false, textAreaID);
In questo codice, aggiungo i dati clonati (ctHolder) a .sectionOptions
, imposto l'ID del textarea, resetto l'editor su quell'ID e poi aggiungo il controllo all'ID... ma non funziona, nonostante sia il suggerimento più comune.
Questo ha funzionato:
var textAreaID = 'sectionContent_' + sectionID;
$(this).parent()
.find('.sectionOptions')
.html(ctHolder).ready(
function() {
tinyMCE.execCommand('mceAddEditor', false, textAreaID);
}
);
WordPress 3.9 utilizza TinyMCE 4.x quindi "mceAddControl" è stato cambiato in "mceAddEditor". Inoltre, ho inserito la chiamata all'interno di una funzione ready in modo che jQuery non eseguisse TinyMCE finché non avesse caricato la textarea nel DOM.
