मैं दृश्यपटल में TinyMCE संपादक को कैसे शामिल करूं?


22

मैं अपने फ्रंट में एक TinyMCE संपादक जोड़ने की कोशिश कर रहा हूं जहां से उपयोगकर्ता पोस्ट कर सकते हैं लेकिन अभी तक कोई भाग्य नहीं था। यहाँ कोड है:

पीएचपी:

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();
}

जावास्क्रिप्ट:

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>

समस्या: टेक्‍स्‍टेडिटर को टेक्‍स्‍टेरिया में नहीं जोड़ना यद्यपि TinyMCE js फ़ाइल लोड हो रही है।


1
शायद आपको फ्रंटेंड एडिटर
mike23

जवाबों:


17

खैर, wp 3.3 के लिए धन्यवाद अब हमारे पास यह wp_editor()करने के लिए फ़ंक्शन है :)


1
हाँ, सिवाय इसके कि यह सीधे संपादक को आउटपुट देता है, जैसा कि आप इसे एक शोर्ट में उपयोग करने की अनुमति देने का विरोध करते हैं ...
cale_b

4
आप php ob_content फ़ंक्शन का उपयोग करके शोर्ट में इसका उपयोग कर सकते हैं। ये फ़ंक्शन आपको आउटपुट को एक चर में कैप्चर करने की अनुमति देते हैं। जैसे: ob_start (); शामिल हैं (स्थिर :: getTemplatePath ()। '/'। $ templatePath। '.php'); $ टेम्पलेट = ob_get_contents (); ob_end_clean (); $ टेम्पलेट वापस करें;
तोश

2

editor_selector कक्षाओं को लक्षित करने के लिए है, आईडी नहीं।

इसके अलावा, उपयोग करते समय editor_selector, इसे mode: "specific_textareas"काम करने के लिए सेट करना आवश्यक है ।

Http://tinymce.moxiecode.com/wiki.php/Configuration:editor_selector देखें

तो आपका जावास्क्रिप्ट और HTML इस तरह दिखना चाहिए:

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

Altough @maryisdead का उत्तर सही हो सकता है, मैं आपको एक और टिप दूंगा, पहले यह सुनिश्चित करें कि आपके पेज में id = "एडिटर" के साथ केवल एक ही तत्व है, फिर सेटअप को इस तरह से सेट करें:

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

यह सुनिश्चित करने के लिए कि आप jQuery के तरीकों और चयनकर्ताओं को बुला रहे हैं, अपने जावास्क्रिप्ट कोड में $ के बजाय jQuery का उपयोग करें।


0

Editor_selector कक्षाओं के लिए है और आईडी के लिए नहीं है।

आपको textarea के वर्ग नाम के रूप में editor_selector के मूल्य का उपयोग करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.