मुझे लगता है कि @janw को यह पूरी तरह से सही मिला है, लेकिन मैं एक काम करने में असमर्थ था। जन मीडिया लाइब्रेरी बटन का उपयोग करता है:
do_action( 'media_buttons', 'default_featured_image' );
और उसके बाद डिफ़ॉल्ट क्रिया का पूर्व-प्रयोग करता है:
jQuery('#default_featured_image_button').click(function () {...
समस्या यह है कि मैं भाग गया है कि इस तरह से एक मीडिया बटन डालने से लिंक करने के लिए "default_featured_image_button" की एक आईडी प्रदान नहीं करता है। वास्तव में यह सम्मिलित लिंक पर कोई आईडी नहीं जोड़ता है। तो यह वही है जो मैंने इसे काम करने के लिए प्राप्त किया।
मैंने अपने इनपुट फ़ील्ड के ठीक बाद इस लाइन को अपने मेटा बॉक्स कॉलबैक फ़ंक्शन में जोड़ा:
<input id="upload_logo_button" type="button" value="Media Library Image" class="button-secondary" />
मैंने तब अपने कस्टम jquery फ़ाइल और thickbox css फ़ाइल को अपने कार्यों में भी प्रयोग किया।
add_action('admin_enqueue_scripts', 'jhsir_load_image_set_js');
function jhsir_load_image_set_js() {
wp_enqueue_script( 'jhsir_image_set_script', get_stylesheet_directory_uri() . '/js/image-set.js', array('jquery','media-upload','thickbox') );
wp_enqueue_style( 'thickbox' );
}
अंत में मेरी छवि- set.js फ़ाइल में निम्नलिखित शामिल थे:
jQuery(document).ready(function($) {
var formfield = null;
$('#upload_logo_button, #upload_background_button').click(function() {
$('html').addClass('Image');
formfield = $(this).prev('input').attr('name');
formfield_id = $(this).prev('input').attr('id');
tb_show( '', 'media-upload.php?type=image&TB_iframe=true' );
return false;
});
// user inserts file into post.
// only run custom if user started process using the above process
// window.send_to_editor(html) is how wp normally handles the received data
window.original_send_to_editor = window.send_to_editor;
window.send_to_editor = function( html ) {
var fileurl;
if(formfield != null) {
fileurl = $( 'img', html).attr('src');
$( "#" + formfield_id ).val(fileurl);
tb_remove();
$('html').removeClass('Image');
formfield = null;
} else {
window.original_send_to_editor(html);
}
};
});
आप ध्यान देंगे कि मैंने इनपुट फ़ील्ड के नाम और आईडी को संग्रहीत करने के लिए चर का उपयोग किया था जो कि उस लिंक से पहले है जो jQuery को कॉल करता है। इस तरह इस कोड को एक ही पेज पर बार-बार इस्तेमाल किया जा सकता है। आपको बस सभी बटनों के लिए एक वर्ग निर्दिष्ट करने की आवश्यकता होगी या आपके ईद-गिर्द के बटनों के लिए व्यक्तिगत आईडी का उपयोग करना होगा जैसा मैंने किया था। मुझे उम्मीद है कि इससे किसी को मदद मिलेगी क्योंकि जनवरी का जवाब मुझे मिला था।