J'utilise le programme de téléchargement de média dans une propre méta-boîte pour un type de message personnalisé appelé "premium". La Thickbox s'ouvre après un clic sur le bouton dans la méta-boîte et les fichiers peuvent être téléchargés.
Maintenant, je veux supprimer les onglets "De l'URL" et "Bibliothèque" uniquement lorsque l'uploader est utilisé dans la page d'édition/nouvelle du CPT ou, si possible, avec l'appel de l'événement-clic.
Je n'ai aucune idée de comment résoudre.
P.S .: J'utilise ce js pour appeler la thickbox et j'ai essayé de supprimer une tabulation via jQuery:
jQuery(document).ready(function() {
jQuery('#pc_extContent_button').click(function() {
formfield = jQuery('#pc_extContent').attr('name');
tbframe_interval = setInterval(function() {
jQuery('#tab-type_url').hide();
}, 2000);
tb_show('', 'media-upload.php?type=file&TB_iframe=true')
return false;
});
Vous pouvez utiliser la vérification media_upload_tabs filter
pour votre type de publication et désélectionner tout onglet que vous ne voulez pas ex:
function remove_media_library_tab($tabs) {
if (isset($_REQUEST['post_id'])) {
$post_type = get_post_type($_REQUEST['post_id']);
if ('premium' == $post_type)
unset($tabs['library']);
unset($tabs['type_url']);
}
return $tabs;
}
add_filter('media_upload_tabs', 'remove_media_library_tab');
Tout d'abord, il est nécessaire de changer le JavaScript pour inclure le post_id dans la requête:
jQuery(document).ready(function() {
jQuery('#pc_extContent_button').click(function() {
var pID = jQuery('#post_ID').val();
formfield = jQuery('#pc_extContent').attr('name');
tb_show('premiumTB', 'media-upload.php?post_id='+ pID +'&type=image&TB_iframe=true');
return false;
});
window.send_to_editor = function(html) {
imgurl = jQuery('img', html).attr('href');
jQuery('#pc_extContent').val(imgurl);
tb_remove();
}
});
Alors la solution de Bainternet peut être utilisée dans le functions.php (ou similaire)
function remove_media_library_tab($tabs) {
if (isset($_REQUEST['post_id'])) {
$post_type = get_post_type($_REQUEST['post_id']);
if ('premium' == $post_type) {
unset($tabs['library']);
unset($tabs['type_url']);
}
}
return $tabs;
}
add_filter('media_upload_tabs', 'remove_media_library_tab');
Donc, tout fonctionne bien ensemble et les onglets sont supprimés.