Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

How do I remove the Insert from URL link in the new Wordpress 3.5 Add Media popup page? In earlier versions of Wordpress, this worked fine:

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

Who knows?

share|improve this question

2 Answers 2

up vote 4 down vote accepted

This should work:

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;
}
share|improve this answer
    
Works great - well done! –  Christine Cooper Dec 16 '12 at 17:16
    
Is this possible to be done via javascript, I used the media manager in post metabox, so I can't do this via filter since it will ruin the post 'add media' behaviour. –  ayublin Jan 20 '13 at 15:16

The code of default tabs array in new WP is in media.php and looks like this:

/**
 * 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);
}

If you want only remove upload from url by default you shoud change your function to:

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

Not tested but it should work fine.

Edit: Not work because this array is used in other place. If you want just remove the link you can use this work around:

function remove_media_library_tab(){
    ?>
    <style>
        .media-menu a:last-child{ display:none}
    </style>
    <?php
}
add_action('admin_head', 'remove_media_library_tab');
share|improve this answer
    
This does not work I'm afraid. Maybe you could try it yourself and debug the code...? –  Christine Cooper Dec 15 '12 at 18:12
1  
I edit my answer, you can check new code (works in my WP) or just copy css rule to your style.css. I can't find method to remove this option from php. –  Maciej Płusa Dec 15 '12 at 18:45
    
Cor van Noorloos answer works better as it unsets it rather than hiding it through CSS. However, this was a good approach which is why I have upvoted it. –  Christine Cooper Dec 16 '12 at 17:17
    
Yep, it's better ;) I just check it - it use a new filter from WP 3.5 which I did not know ;) –  Maciej Płusa Dec 16 '12 at 17:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.