WordPress TinyMCE wp_editor () के साथ टेक्स्टटेरा को बदलना

मैं wp_editor() के साथ एक textarea को बदलने की कोशिश कर रहा हूँ

मेरा textarea फॉर्म तत्व इस तरह दिखता है:


फिर मेरे पास है:

wp_editor( $content, 'post_text' );

मुझे जो समस्या मिल रही है वह दोनों फॉर्म टेक्स्टरेरा है और wp_editor textarea को पृष्ठ पर आउटपुट किया जाता है। दोनों textareas क्यों प्रदर्शित कर रहे हैं? मुझे प्रदर्शित करने के लिए केवल एक textarea की आवश्यकता है। सब कुछ ठीक बचाता है, मुझे बस 2 textareas दिखाने की समस्या है।

संपादित करें: क्या यह मेरे कोड के textarea पर display: none; डालने जैसा आसान है, इसलिए केवल wp_editor() textarea प्रदर्शित करता है? ऐसा लगता है लेकिन थोड़ा सा हैक लगता है।

0
मैं अपने पृष्ठ से पूरी तरह से

तो निश्चित रूप से यह पृष्ठ पर दिखने जा रहा है, यही वह है जो इसे करना है। जब तक कुछ ऐसा नहीं होता है, तो मुझे गलतफहमी होती है, मैं नहीं देखता कि यह कैसे समझ में नहीं आता है।

जैसा कि आपने सुझाव दिया था, मुझे लगता है कि यह वही करेगा जो आप चाहते हैं:


यह अभी भी कार्यात्मक रूप से, लेकिन अदृश्य होगा।

0
जोड़ा
हम्म। मैंने कुछ और TinyMCE में देखा और ऐसा लगता है कि मैंने आपके प्रश्न को गलत समझा। क्या आप अधिक कोड प्रदान कर सकते हैं? मुझे लगता है कि यह मुद्दा कहीं और हो रहा है।
जोड़ा लेखक Entity, स्रोत
यह सभी आपका कोड है? wp_editor को <? PHP और ?> के अंदर कॉल किया गया है? आप TinyMCE संपादक का उपयोग किसके लिए कर रहे हैं?
जोड़ा लेखक Entity, स्रोत
शानदार :) फिर इसे एक जवाब के रूप में पोस्ट करना याद रखें।
जोड़ा लेखक Entity, स्रोत
धन्यवाद। तो मुझे पृष्ठ पर textarea तत्व रखने की आवश्यकता नहीं है? क्या मैं इसे हटा सकता हूं? क्या यह है कि wp_editor() का काम करने का इरादा है?
जोड़ा लेखक henrywright, स्रोत
क्या आप एक लिंक प्रदान कर सकते हैं जहां समस्या कहीं और हो रही है? वास्तव में मेरे पास अब तक का सभी कोड है। क्या आपका मतलब प्रसंस्करण कोड है? वह सरल फ्रंट एंड पोस्ट github.com/sbrajesh/bp नामक प्लगइन से आ रहा है आसान सरल-सामने के अंत पोस्ट
जोड़ा लेखक henrywright, स्रोत
हाँ बस यही। मैं सामने के अंत से वर्डप्रेस पोस्ट संपादित करने के लिए TinyMCE संपादक का उपयोग कर रहा हूँ। मुझे लगता है कि मैंने समस्या का समाधान किया होगा। निम्नलिखित करने से आप पृष्ठ से फ़ॉर्म के टेक्स्टरेरा को हटा सकते हैं और wp_editor() द्वारा $ textrea का उपयोग कर सकते हैं: $ settings = array ('textarea_name' => 'bp_simple_post_text' ...
जोड़ा लेखक henrywright, स्रोत
करूँगा। आपकी सहायताके लिए धन्यवाद!
जोड़ा लेखक henrywright, स्रोत

I found the solution. You can use a third parameter to pass an array of arguments. Now this is pretty obvious as outlined in the Codex: http://codex.wordpress.org/Function_Reference/wp_editor

थोड़ा उलझन (मेरी समस्या का स्रोत) क्या है $ editor_id में केवल लोअरकेस अक्षर हो सकते हैं। तो यदि आपकी प्रपत्र प्रसंस्करण स्क्रिप्ट उसमें अंडरस्कोर के साथ कुछ ढूंढ रही है (जैसा कि मेरा था) तो आपको यह करने की आवश्यकता होगी:

$settings = array( 'textarea_name' => 'post_text' )

wp_editor( $content, $editor_id, $settings );

ध्यान दें कि आप यह नहीं कर सकते:

wp_editor( $content, 'post_text' );

जहां मैं गलत गया था।

0
जोड़ा

अपने टेम्पलेट पेज को कॉल करें जहां आप tinyMCE रखना चाहते हैं, उस टेम्पलेट पेज पर प्लेसहोल्डर रखें जैसे <कोड > CONTENT_EDITOR और उस टेम्पलेट सामग्री में tinyMCE जोड़ने के लिए PHP str_replace फ़ंक्शन का उपयोग करें:

function add_tinymce_to_page(){
    $creatorHTML                    =   file_get_contents(
        'your-template-pafe.php',
        TRUE
    );

    $editorHTML                     = generate_content_with_editor();
    $creatorHTML                    =   str_replace(
        'CONTENT_EDITOR',
        $editorHTML,
        $creatorHTML
    );

    return $creatorHTML;
}

function generate_content_with_editor(){
    ob_start();
    wp_editor( '', 'tinymcecontenteditor' );
    $editor_contents                = ob_get_contents();
    ob_get_clean();
    return $editor_contents;
}

मैं PHP का ob का उपयोग करता हूं, इसलिए tinyMCE पूर्ण पृष्ठ प्रस्तुत होने से पहले प्रदर्शित नहीं होता है।

0
जोड़ा

पृष्ठ पर एक नया टेक्स्टरेरा आउटपुट करने के बजाय ( wp_editor() द्वारा) और display: none; के साथ मूल textarea को छुपाएं, कोई यह कर सकता है:

add_action('admin_init', '20331501_convert_textarea_to_wysiwyg');

function 20331501_convert_textarea_to_wysiwyg(){
    wp_enqueue_editor();
    add_action( 'admin_print_footer_scripts', function() {
        ?>
        <script>
            jQuery(function(){
                wp.editor.initialize('the-id-of-your-textarea-without-the-#', {
                    setup: function (editor) {
                        editor.on('change', function() {
                            editor.save();
                        });
                    }
                });
            });
        </script>
        <?php
    }, 10, 2 );
}

यह कोड स्निपेट मौजूदा textarea को wysiwyg में परिवर्तित करता है। editor.save() टेक्स्टरेरा मान को अपडेट करने का ख्याल रखता है ताकि जब कोई फ़ॉर्म सबमिट कर लेता है तो यह पारित हो जाता है। ( @Dan Malcolm पर क्रेडिट )

0
जोड़ा