TinyMCE editörünü ön yüze nasıl eklerim?


22

Ön uçuma, kullanıcıların gönderebileceği, ancak şimdiye kadar hiç şans tanımadıkları bir TinyMCE editörü eklemeye çalışıyorum. İşte kod:

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>

Sorun: Texteditor textarea'a eklenmiyor. TinyMCE js dosyası yükleniyor olmasına rağmen.


Yanıtlar:


17

Peki, wp 3.3 sayesinde şimdi bunu wp_editor()yapabilme fonksiyonumuz var :)


1
Evet, editörün doğrudan çıktısını alması dışında, onu bir kısa
kodda

4
Bunu bir php ob_content fonksiyonunu kullanarak bir kısa kodda kullanabilirsiniz. Bu işlevler çıktıyı bir değişkende yakalamanıza izin verir. Bunun gibi: ob_start (); include (static :: getTemplatePath (). '/'. $ templatePath. '.php'); $ template = ob_get_contents (); ob_end_clean (); $ şablonunu döndür;
Tosh

2

editor_selector sınıfları hedeflemek içindir, kimlikleri değil.

Kullanırken Ayrıca editor_selector, bu seti için gereklidir mode: "specific_textareas"çalışması için sırayla.

Http://tinymce.moxiecode.com/wiki.php/Configuration:editor_selector adresine bakın.

Yani JavaScript'iniz ve HTML’niz şöyle görünmelidir:

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>

0

@Maryisdead cevabı doğru olsa da, size başka bir ipucu vereyim, ilk önce id = "editor" ile sayfanızda yalnızca bir eleman olduğundan emin olun, sonra şöyle ayarlayın:

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

Ayrıca jQuery yöntemlerini ve seçicilerini aradığınızdan emin olmak için javascript kodunuzda $ yerine jQuery kullanın.


0

editor_selector kimlikler için değil sınıflar içindir.

Editör_selektörünün değerini, textarea'nın sınıf ismi olarak kullanmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.