संपादक के बिना wpLink का उपयोग कैसे करें?


11

मैं एक लिंक जोड़ने के लिए थीम विकल्प बनाना चाहूंगा। इन स्क्रिप्ट को लोड करना और डायलॉग को ट्रिगर करना ठीक काम करता है अगर wp एडिटर मौजूद है।

wp_enqueue_script('wplink');
wp_enqueue_script('wpdialogs');
wp_enqueue_script('wpdialogs-popup');
wp_enqueue_style('wp-jquery-ui-dialog');
wp_enqueue_style('thickbox');

wp_editor('', 'unique_id', array('editor_class'=>'hidden'));



$('.add-link').on("click", function(e){
    e.preventDefault();

      wpLink.open();
      return false;
});

लेकिन संपादक के बिना इसे खुले लिंक संवाद बॉक्स कैसे बनाया जाए?

यही मैं बाद में हूं

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


2
यह सब संपादक के लिए बहुत कसकर बंधा हुआ है, लिंक संवाद संपादक वर्ग की एक विधि द्वारा बनाया गया है, और जो स्क्रिप्ट इसे आमंत्रित करती है उसे संपादक उदाहरण की आवश्यकता होती है।
मिलो

संपादक के बिना आपका क्या मतलब है? आप इसे कहां रखना चाहते हैं?
21

विषय सेटिंग्स में @Trix
बेन

: बेहतर होगा कि तुम अपनी खुद की निर्माण या उन्नत कस्टम फ़ील्ड के रिश्ते क्षेत्र की तरह कुछ का उपयोग कर बंद कर रहे हैं advancedcustomfields.com/resources/relationship या कस्टम फ़ील्ड सुइट के रिश्ते क्षेत्र: docs.customfieldsuite.com/field-types/relationship.html
MikeNGarrett

जवाबों:


7

ऐसा करने का कोई नैतिक तरीका नहीं है। लेकिन फिर भी ऐसा करने का एक तरीका है। वर्डप्रेस ने wpLink स्क्रिप्ट को ध्यान में रखते हुए लिखा कि संपादक है लेकिन फिर भी वर्डप्रेस संभालता है जब संपादक नहीं है (गुड थिंग)

इस उदाहरण पर विचार करें और मान लें कि हम इसका उपयोग फ़ुट-एंड में फ्रंट-एंड पर कर रहे हैं।

सबसे पहले आवश्यक शैली और लिपियों को समझें।

function enqueue_scripts_209490() {
    wp_enqueue_script('wplink');
    wp_enqueue_style( 'editor-buttons' );
}
add_action('wp_enqueue_scripts', 'enqueue_scripts_209490');

अब पाद में इस फ़ंक्शन को हुक करें इनलाइन टिप्पणियां पढ़ें

function display_wplink_html_209490() {
    //Our textarea, click to open the link edior and insert the link in same editor
    echo '<textarea id="example_209490"></textarea>';

    // Require the core editor class so we can call wp_link_dialog function to print the HTML.
    // Luckly it is public static method ;)
    require_once ABSPATH . "wp-includes/class-wp-editor.php";
    _WP_Editors::wp_link_dialog(); ?>

    <script type="text/javascript">
        /* We need ajaxurl to send ajax to retrive links */
        var ajaxurl = "<?php echo admin_url( 'admin-ajax.php'); ?>";
        jQuery(document).ready(function (){
            jQuery('#example_209490').click(function (){
                wpLink.open('example_209490'); /* Bind to open link editor! */
            });
        })
    </script><?php
}
add_action('wp_footer', 'display_wplink_html_209490');

नोट: यह तब काम नहीं करेगा जब उपयोगकर्ता लॉग-इन नहीं है क्योंकि js त्रुटि setUserSettingपरिभाषित नहीं है और उपयोगकर्ता द्वारा लॉग-इन नहीं किए जाने पर AJAX प्रतिक्रिया नहीं मिलती है।


किसी तरह मैं यह सब _WP_Editorsकोड के बिना पहले काम कर रहा था , और यह टूट गया। आपके उत्तर ने दिन बचा लिया - धन्यवाद!
random_user_name
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.