Domanda

Sto cercando di aggiungere un editor TinyMCE nel mio frontend da cui gli utenti possono inserire, ma non hanno avuto fortuna finora. Ecco il codice:

PHP:

add_action('wp_print_scripts', 'my_enqueue_scripts');

function my_enqueue_scripts() {      
        wp_enqueue_script( 'tiny_mce' );
        if (function_exists('wp_tiny_mce')) wp_tiny_mce();
}

JavaScript:

jQuery(document).ready(function(){
tinyMCE.init({
        mode : "textareas",
        theme : "simple", 
        /*plugins : "autolink, lists, spellchecker, style, layer, table, advhr, advimage, advlink, emotions, iespell, inlinepopups, insertdatetime, preview, media, searchreplace, print, contextmenu, paste, directionality, fullscreen, noneditable, visualchars, nonbreaking, xhtmlxtras, template",*/
        editor_selector :"editor"
    });
});

HTML:

<textarea rows="8" cols="40" name="description" id="editor" class="required"><?php echo $description;?></textarea>

Problema: Texteditor non aggiungendo al textarea. Anche se il file js TinyMCE è carico.

È stato utile?

Soluzione

Bene, grazie a wp 3.3 ora abbiamo wp_editor() funzione per farlo:)

Altri suggerimenti

editor_selector è per il targeting classi, non id.

Inoltre, quando si utilizza editor_selector, si è tenuto a mode: "specific_textareas" impostato in modo per farlo funzionare.

http://tinymce.moxiecode.com/wiki.php/Configuration:editor_selector

Così il vostro JavaScript e HTML dovrebbe essere simile a questo:

jQuery(document).ready(function(){
tinyMCE.init({
        mode : "specific_textareas",
        theme : "simple", 
        /*plugins : "autolink, lists, spellchecker, style, layer, table, advhr, advimage, advlink, emotions, iespell, inlinepopups, insertdatetime, preview, media, searchreplace, print, contextmenu, paste, directionality, fullscreen, noneditable, visualchars, nonbreaking, xhtmlxtras, template",*/
        editor_selector :"tinymce-enabled"
    });
});

<textarea rows="8" cols="40" name="description" id="editor" class="tinymce-enabled required"><?php echo $description;?></textarea>

Benche @maryisdead risposta potrebbe essere di destra, io ti do un altro suggerimento, prima assicurarsi che non c'è un solo elemento nella tua pagina con id = "Editor", quindi l'installazione TinyMCE in questo modo:

tinyMCE.init({
    ...
    mode : "exact",
    elements : "editor"
});

Anche utilizzare jQuery invece di $ nel codice javascript per assicurarsi che si sta chiamando metodi e selettori di jQuery.

editor_selector è per le classi e non per gli ID.

Si consiglia di utilizzare il valore di editor_selector come il nome della classe del textarea.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top