This post shows how to remove unwanted fields from the media uploader. It works great, but I want to limit it to a custom-post-type and I can’t seem to figure out how to do it. I’ve tried the following code, but it doesn’t seem to work:
add_filter('attachment_fields_to_edit', 'remove_media_upload_fields', 10000, 2);
function remove_media_upload_fields( $form_fields, $post ) {
global $my_admin_page;
$screen = get_current_screen();
if ( 'slider' == $screen->post_type ){
unset( $form_fields['image-size'] );
unset( $form_fields['post_excerpt'] );
unset( $form_fields['url'] );
unset( $form_fields['image_url'] );
unset( $form_fields['align'] );
}
return $form_fields;
}
Any ideas on how to get this to work?
Thanks,
Moshe
The current screen doesn’t appear to be set when that filter is run, so you cannot use that. Also, the
$post
actually refers to the attachment, not the post – so we can’t get the post typ fro that either….So looking at the source code: http://core.trac.wordpress.org/browser/tags/3.3.2/wp-admin/includes/media.php
The filter you are using is called by
get_attachment_fields_to_edit
, tracing this – we find its called byget_media_item
.Looking at
get_media_time
, it unfortunately does not pass the post ID or object. However, it does have:This indicates that the only way of getting the post ID (and thus post type), is to grab it from
$_GET
. It would be nicer if this was passed as along with the$args
array that is defined then.So: