TinyMCE संपादक में शोर्ट बटन कैसे जोड़ें?


34

Wordpress पोस्ट में कोई भी plugin icon कैसे बनाये? कोड मैं प्लगइन कोड में डालना चाहता हूं और पोस्ट बार [wp-admin / post.php] में दिखाई देगा।

इस छवि की तरह:

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

आउटपुट: अगर मैं आइकन पर क्लिक करता हूं तो यह स्वचालित रूप [plugin]से इस तरह पोस्ट सामग्री को लिखता है:

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


आप जो परिणाम प्राप्त करना चाहते हैं उसका स्क्रीन शॉट जोड़ें। यह स्पष्ट नहीं है कि आप क्या चाहते हैं।
FUXIA

मुझे लगता है कि आप एक प्लगइन बनाना चाहते हैं जो संपादक में एक टाइनीएमसीई बटन जोड़ता है जो वर्डप्रेस शॉर्टकोड सम्मिलित करता है, है ना?
developdaly

जवाबों:


65

TinyMCE संपादक में अपना बटन जोड़ने के लिए हमें कई काम करने होंगे:

  1. हमारे बटन को टूलबार में जोड़ें
  2. एक TinyMCE प्लगइन रजिस्टर करें
  3. उस TinyMCE प्लग-इन को बनाएं जिसमें TinyMCE बताता है कि हमारे बटन को क्लिक करने पर क्या करना है।

चरण # 1 और # 2

इन चरणों में हम अपना TinyMCE प्लग-इन रजिस्टर करते हैं, जिसमें एक जावास्क्रिप्ट फ़ाइल के अंदर रहते 'path/to/shortcode.js'हैं ( wpse72394_register_tinymce_plugin()नीचे देखें)

 // init process for registering our button
 add_action('init', 'wpse72394_shortcode_button_init');
 function wpse72394_shortcode_button_init() {

      //Abort early if the user will never see TinyMCE
      if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') && get_user_option('rich_editing') == 'true')
           return;

      //Add a callback to regiser our tinymce plugin   
      add_filter("mce_external_plugins", "wpse72394_register_tinymce_plugin"); 

      // Add a callback to add our button to the TinyMCE toolbar
      add_filter('mce_buttons', 'wpse72394_add_tinymce_button');
}


//This callback registers our plug-in
function wpse72394_register_tinymce_plugin($plugin_array) {
    $plugin_array['wpse72394_button'] = 'path/to/shortcode.js';
    return $plugin_array;
}

//This callback adds our button to the toolbar
function wpse72394_add_tinymce_button($buttons) {
            //Add the button ID to the $button array
    $buttons[] = "wpse72394_button";
    return $buttons;
}

चरण 3

अब हमें अपना TinyMCE प्लग-इन बनाने की आवश्यकता है। यह एक फ़ाइल में जाएगा 'path/to/shortcode.js'(प्रारंभिक चरणों में निर्दिष्ट)।

jQuery(document).ready(function($) {

    tinymce.create('tinymce.plugins.wpse72394_plugin', {
        init : function(ed, url) {
                // Register command for when button is clicked
                ed.addCommand('wpse72394_insert_shortcode', function() {
                    selected = tinyMCE.activeEditor.selection.getContent();

                    if( selected ){
                        //If text is selected when button is clicked
                        //Wrap shortcode around it.
                        content =  '[shortcode]'+selected+'[/shortcode]';
                    }else{
                        content =  '[shortcode]';
                    }

                    tinymce.execCommand('mceInsertContent', false, content);
                });

            // Register buttons - trigger above command when clicked
            ed.addButton('wpse72394_button', {title : 'Insert shortcode', cmd : 'wpse72394_insert_shortcode', image: url + '/path/to/image.png' });
        },   
    });

    // Register our TinyMCE plugin
    // first parameter is the button ID1
    // second parameter must match the first parameter of the tinymce.create() function above
    tinymce.PluginManager.add('wpse72394_button', tinymce.plugins.wpse72394_plugin);
});

1
चरण 1 में, initहुक को हुक में बदलने admin_initसे फ्रंट-एंड पर कुछ मामूली अतिरिक्त प्रसंस्करण को भी बचाया जा सकता है।
टिम मेलोन

यह निर्भर करता है, आप फ्रंट-एंड पर भी TinyMCE कर सकते हैं। लेकिन हां, अगर यह केवल एडमिन-साइड है, admin_initतो बेहतर होगा।
स्टीफन हैरिस

5

यहाँ पूरे उत्तर को डालने के लिए बहुत कुछ है इसलिए इस गाइड को चेकआउट करें: http://wp.smashingmagazine.com/2012/05/01/wordpress-shortcodes-complete-guide/

आपको एक जावास्क्रिप्ट फ़ाइल बनानी होगी जो आपके द्वारा रजिस्टर किए गए बटन से होती है जो वर्डप्रेस के माध्यम से रजिस्टर होती है जो संपादक में टिनीएमसीई बटन सम्मिलित करती है।


3
शायद लिंक करने के लिए सबसे अच्छा उदाहरण नहीं है, इसलिए query_posts का उपयोग करता है।
ब्रैड डाल्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.