добавление кнопки в загрузчик мультимедиа

Я пишу плагин для WordPress, и мне интересно, как добавить дополнительную кнопку в медиа-загрузчик, который говорит что-то вроде «добавить в альбом». Я не могу найти информацию о том, как другим разработчикам удалось это сделать. Благодаря 🙂

Solutions Collecting From Web of "добавление кнопки в загрузчик мультимедиа"

Когда мне нужно было что-то подобное, я использовал admin_print_scripts-media-upload-popup чтобы добавить свой собственный код js / JQuery, чтобы вставить кнопку и обработать событие click с помощью ajax.

что-то вроде этого:

 add_action('admin_print_scripts-media-upload-popup','add_my_media_button'); function add_my_media_button(){ ?> <script> jQuery(document).ready(function() { //loop over all attachments jQuery(".savesend").each(function(i,v){ if (jQuery(this).next().attr('id') != ""){ //get attachment id var att_id = jQuery(this).next().attr('id'); att_id = att_id.replace("send[", ""); att_id = att_id.replace("]", ""); //insert button jQuery(this).append('<a href="#" class="button add_to_album" rel="'+ att_id +'" id="add_to_album['+att_id+']" name="add_to_album['+att_id+']">add to album</a>'); } }); //add handler for click jQuery(".add_to_album").live("click", function(){ //do your thing here alert("add to album click"); )}; )}; </script> <?php } 

Мне удалось сделать так:

Добавление JS к загрузчику мультимедиа:

 function mediabutton(){ wp_register_script( 'mediabutton', ''.WP_PLUGIN_URL.'/magic-gallery/js/mediabutton.js', null, null); wp_enqueue_script( 'mediabutton'); } add_action('admin_print_scripts-media-upload-popup','mediabutton'); // Adding insert button 

И затем, используя этот JS:

 jQuery(document).ready(function() { jQuery('<a href="#" id="insert_gallery" class="button">Return to gallery</a>').insertAfter('.ml-submit'); jQuery('#insert_gallery').live('click',function() { self.parent.tb_remove(); // This closes the thickbox }); }); 

Затем я подключился к tb_close следующим образом:

 tb_remove = function () { // Your code here alert('closing thickbox'); // Original tb_remove code jQuery("#TB_imageOff").unbind("click"); jQuery("#TB_closeWindowButton").unbind("click"); jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("tb_unload").unbind().remove();}); jQuery("#TB_load").remove(); if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 jQuery("body","html").css({height: "auto", width: "auto"}); jQuery("html").css("overflow",""); } jQuery(document).unbind('.thickbox'); return false; } 

Или вы можете добавить новую вкладку, содержащую все, что хотите.

 <?php function my_media_menu($tabs) { $newtab = array('tabname' =&gt; __('TextInMenu', 'yourname')); return array_merge($tabs, $newtab); } add_filter('media_upload_tabs', 'my_media_menu'); ?>