这是一条古老的线索,但对我来说仍然是相关的。我一直在摆弄并想出了在此处添加媒体选项卡的代码,也许有人想继续了解如何处理选项卡的内容?:)
add_action(\'admin_enqueue_scripts\', function(){
wp_enqueue_script( \'my-media-tab\', plugin_dir_url( __FILE__ ) . \'/js/mytab.js\', array( \'jquery\' ), \'\', true );
});
然后是js文件:
var l10n = wp.media.view.l10n;
wp.media.view.MediaFrame.Select.prototype.browseRouter = function( routerView ) {
routerView.set({
upload: {
text: l10n.uploadFilesTitle,
priority: 20
},
browse: {
text: l10n.mediaLibraryTitle,
priority: 40
},
my_tab: {
text: "My tab",
priority: 60
}
});
};
编辑:好的,所以。对于处理的内容,我还没有找到一个很好的方法来做到这一点的wp。媒体我目前的解决方案是2个Lisener,一个用于打开媒体库,另一个用于单击媒体路由器菜单;
jQuery(document).ready(function($){
if ( wp.media ) {
wp.media.view.Modal.prototype.on( "open", function() {
if($(\'body\').find(\'.media-modal-content .media-router a.media-menu-item.active\')[0].innerText == "My tab")
doMyTabContent();
});
$(wp.media).on(\'click\', \'.media-router a.media-menu-item\', function(e){
if(e.target.innerText == "My tab")
doMyTabContent();
});
}
});
函数doMyTabContent();就像是;
function doMyTabContent() {
var html = \'<div class="myTabContent">\';
//My tab content here
html += \'</div>\';
$(\'body .media-modal-content .media-frame-content\')[0].innerHTML = html;
}
我非常确信这可以用一种更加微妙的方式来完成。无论谁读到这篇文章并有更好的解决方案,请填写:-)