Este é um tópico antigo, mas para mim ainda é relevante.
Eu tenho mexido e veio com este código para adicionar uma guia de mídia aqui, talvez alguém queira continuar como o conteúdo do identificador para a guia? :)
add_action('admin_enqueue_scripts', function(){
wp_enqueue_script( 'my-media-tab', plugin_dir_url( __FILE__ ) . '/js/mytab.js', array( 'jquery' ), '', true );
});
E, em seguida, o arquivo 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
}
});
};
EDITAR:
OK então. Para lidar com o conteúdo eu não encontrei uma maneira legal de fazer isso pelo wp.media. Minha solução atual é de 2 liseners, um para abrir a biblioteca de mídia e um para clicar no menu do roteador de mídia;
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();
});
}
});
a função doMyTabContent (); é apenas algo parecido;
function doMyTabContent() {
var html = '<div class="myTabContent">';
//My tab content here
html += '</div>';
$('body .media-modal-content .media-frame-content')[0].innerHTML = html;
}
Tenho certeza de que isso pode ser feito de uma maneira muito mais delicada. Quem lê isso e tem uma solução melhor, por favor preencha :-)