从CPT的媒体上载程序中删除标签

时间:2012-03-25 作者:Guru 2.0

我在一个自己的元框中使用媒体上传器,用于一个名为“premium”的自定义帖子类型。单击元框中的按钮后,Thickbox将打开,可以上载文件。

现在,我只想在CPT的编辑/新建页面中使用上载程序时,或者如果可能,在调用click事件时,删除选项卡“From URL”和“Library”。

我不知道怎么解决。

P、 S:我使用这个js调用thickbox,并试图通过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;
});

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

您可以使用media_upload_tabs filter 检查您的帖子类型并取消设置任何不需要的选项卡,例如:

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\');

SO网友:Guru 2.0

首先,有必要更改JavaScript,以便在请求中包含post\\u id:

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();
    }
});
然后可以在函数中使用贝氏网的解。php(或类似)

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\');
因此,所有这些都可以很好地协同工作,并且选项卡被移除。

结束

相关推荐

Metabox doesn't retain values

我在函数中有这个代码。php,以便在后端显示元框。问题是,在我将网站从子域(dev)移动到根域之前,这个功能一直正常运行,现在即使元盒出现在后端,它也不再保留这些值。<?php define(\'MY_WORDPRESS_FOLDER\',$_SERVER[\'DOCUMENT_ROOT\']); define(\'MY_THEME_FOLDER\',str_replace(\'\\\\\',\'/\',dirname(__FILE__))); define(\'MY_THE