AJAX के माध्यम से wp_editor लोड कैसे करें


17

क्या किसी को पता है कि वर्डप्रेस में AJAX के माध्यम से ओ लोड wp_editor कैसे है?

मेरा मार्कअप और संपादक ठीक से लोड हो रहा है, लेकिन संपादक नियंत्रण ठीक से लोड नहीं हो रहे हैं, ऐसा इसलिए हो सकता है क्योंकि AJAX कॉल में जावास्क्रिप्ट नहीं चल रहा है।

किसी भी सहायता की सराहना की जाएगी।


यह काम पाने की चीज का नर्क है। कैरिंगटन बिल्ड या एडवांस्ड कस्टम फील्ड्स (मुझे लगता है ...) के कुछ कोड देखें। बस निराश होने के लिए तैयार रहें।
माइकनेजरेट

जवाबों:


7

मुख्य समस्या लापता स्क्रिप्ट हैं। इसमें लिपिबद्ध स्क्रिप्ट _WP_Editors::enqueue_scripts()कभी नहीं छपी हैं। उसी के लिए सच है _WP_Editors::editor_js()

तो आपको यह करना होगा कि आपके AJAX कॉलबैक हैंडलर में। मैंने एक डेमो प्लगइन लिखा है और इसे GitHub: T5 AJAX संपादक पर रखा है ।

नाम का एक वर्ग है Ajax_Editor। इसकी विधि render()AJAX अनुरोधों पर संपादक को प्रिंट करती है।

public function render()
{
    if ( ! $this->validator->is_valid( TRUE ) )
        die( 'nope' );

    wp_editor( $this->data->get(), $this->editor_id, $this->settings );
    \_WP_Editors::enqueue_scripts();
    print_footer_scripts();
    \_WP_Editors::editor_js();

    die();
}

सटीक आदेश महत्वपूर्ण है, die()अंत में मत भूलना । क्या काम नहीं करता है अभी तक मीडिया अपलोड है। मुझे एक जावास्क्रिप्ट त्रुटि मिलती है जब मैं उसे शामिल करने की कोशिश करता हूं।

ध्यान दें कि कॉलिंग print_footer_scripts();आपको अपेक्षित से अधिक देगा: कुछ प्लगइन्स (उदाहरण के लिए क्वेरी मॉनिटर) अपनी स्क्रिप्ट को AJAX अनुरोधों के लिए भी पंजीकृत करते हैं, भले ही उन्हें वहां उनकी आवश्यकता न हो।


बहुत बहुत धन्यवाद! आपने मुझे काम पाने की कोशिश करने से 2 दिन बचाया! इसके साथ एकमात्र बात, यदि आप इसे कस्टम पोस्ट प्रकार में शामिल करना चाहते हैं, तो यह अन्य संपादक के साथ संघर्ष करता है :(
numediaweb

किसी की तलाश में, WP 4.8 के बाद आप JS API के माध्यम से इसे और अधिक आसानी से (और सफाई से) कर सकते हैं wp.editor.initialize: wordpress.stackexchange.com/a/274608/76440
majick

0

इसके साथ संघर्ष करने के बाद, कॉलबैक ऐड में जो एक लाइन समाधान काम करता है, उसे मिला:

tinymce.execCommand( 'mceAddEditor', true, element.id );

पता नहीं क्यों मैं टिनिअम के अंदर प्रलेखन नहीं ढूंढ सका।

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