Comment puis-je inclure l'éditeur tinymce dans l'interface?

20

J'essaie d'ajouter l'éditeur tinymce dans mon interface à partir de laquelle les utilisateurs peuvent poster. Mais pas de chance jusqu'à présent. Voici le code:

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>

Problème: l'éditeur de texte n'ajoute pas à textarea. Bien que le fichier tinymce js soit en cours de chargement.

    
posée Sisir 20.05.2011 - 12:26

4 réponses

13

Eh bien, grâce à wp 3.3, nous disposons maintenant de la wp_editor() :)

    
réponse donnée Sisir 12.12.2011 - 14:06
2

editor_selector sert à cibler des classes, pas des identifiants.

De même, lors de l'utilisation de editor_selector , il est nécessaire de définir mode: "specific_textareas" pour que cela fonctionne.

Voir enlace

Votre code JavaScript et HTML devrait donc ressembler à ceci:

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>
    
réponse donnée maryisdead 25.06.2011 - 23:15
0

Altough @maryisdead peut-être raison, je vais vous donner un autre conseil. Assurez-vous tout d'abord qu'il n'y a qu'un élément dans votre page avec id="editor", puis configurez tinymce comme suit:

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

Utilisez également jQuery au lieu de $ dans votre code javascript pour vous assurer d'appeler les méthodes et les sélecteurs jQuery.

    
réponse donnée adrian7 05.08.2011 - 22:00
0

editor_selector est destiné aux classes et non aux identifiants.

Vous devez utiliser la valeur editor_selector comme nom de classe de la zone de texte.

    
réponse donnée Franklin Inbaraj 29.03.2016 - 07:53

Lire d'autres questions sur les étiquettes