আমি মনে করি @ জঞ্জউ এটি পুরোপুরি ঠিকভাবে পেয়েছে তবে আমি একটি জিনিস কাজ করতে অক্ষম হয়েছি। জান মিডিয়া লাইব্রেরি বোতামটি ব্যবহার করে সন্নিবেশ করান:
do_action( 'media_buttons', 'default_featured_image' );
এবং তারপরে ব্যবহার করে ডিফল্ট ক্রিয়াটি প্রাক-শূন্য করে:
jQuery('#default_featured_image_button').click(function () {...
আমি যে সমস্যাটি দেখেছি তা হ'ল এই ফ্যাশনে একটি মিডিয়া বোতাম সন্নিবেশ করা লিঙ্কটিতে "ডিফল্ট_প্রেমযুক্ত_আইমেজ_বটন" এর একটি আইডি বরাদ্দ করে না। আসলে এটি linkোকানো লিঙ্কটিতে কোনও আইডি যুক্ত করে না। কাজেই এটি পেতে আমি এটিই করেছি।
আমি আমার ইনপুট ফিল্ডের ঠিক পরে এই মেটা বক্স কলব্যাক ফাংশনে এই লাইনটি যুক্ত করেছি:
<input id="upload_logo_button" type="button" value="Media Library Image" class="button-secondary" />
তারপরে আমি আমার কাস্টম jquery ফাইল এবং পুরুবাক্স সিএসএস ফাইলটিও আমার ফাংশন.এফপি ফাইলে এটিকে ব্যবহার করে:
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' );
}
অবশেষে আমার ইমেজ-সেট.জেএস ফাইলটিতে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:
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 কল করার লিঙ্কের ঠিক আগে। সেভাবে এই কোডটি একই পৃষ্ঠায় বারবার ব্যবহার করা যেতে পারে। আপনাকে যেমন করতে হবে ঠিক তেমন সমস্ত বাটনে একটি ক্লাস বরাদ্দ করতে হবে বা আপনার jquery এর বোতামগুলির জন্য স্বতন্ত্র আইডি ব্যবহার করতে হবে। আমি আশা করি যে জ্যানের উত্তর আমাকে যেমন করেছে তেমনই এটি কাউকে সহায়তা করে।