問題描述

如何刪除新的 Wordpress 3.5 添加媒體彈出頁面中的 Insert from URL 鏈接?在早期版本的 Wordpress 中,這很好:

// removes URL tab in image upload for post
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');

誰知道?

最佳解決方案

這應該工作:

add_filter( 'media_view_strings', 'cor_media_view_strings' );
/**
 * Removes the media 'From URL' string.
 *
 * @see wp-includes|media.php
 */
function cor_media_view_strings( $strings ) {
    unset( $strings['insertFromUrlTitle'] );
    return $strings;
}

次佳解決方案

新 WP 中的默認選項卡數組的代碼在 media.php 中,如下所示:

/**
 * Defines the default media upload tabs
 *
 * @since 2.5.0
 *
 * @return array default tabs
 */
function media_upload_tabs() {
    $_default_tabs = array(
        'type' => __('From Computer'), // handler action suffix => tab text
        'type_url' => __('From URL'),
        'gallery' => __('Gallery'),
        'library' => __('Media Library')
    );

    return apply_filters('media_upload_tabs', $_default_tabs);
}

如果您只想從默認 URL 中刪除上傳,您可以將您的功能更改為:

// removes URL tab in image upload for post
function remove_media_library_tab($tabs) {
    unset($tabs['type_url']);
    return $tabs;
}
add_filter('media_upload_tabs', 'remove_media_library_tab');

沒有測試,但它應該工作正常。

編輯:不工作,因為這個數組用在別的地方。如果你想要刪除鏈接,你可以使用這個工作:

function remove_media_library_tab(){
    ?>
    <style>
        .media-menu a:last-child{ display:none}
    </style>
    <?php
}
add_action('admin_head', 'remove_media_library_tab');

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。