How to Hide/Remove the Buttons From Attachment Media Window in WordPress

x theme

This is a tutorial for How to Hide/Remove the Buttons From Attachment Media Window in WordPress. But the question is that, why you need to this? Usually, we want to simplify the media library layout for ourselves and users when uploading a media (image, video, audio etc).

Following is a code for removing buttons from attachment media window in WordPress. The code will remove all the buttons except the delete button from the media popup.

function myAttachmentFields($form_fields, $post) {
// Can now see $post becaue the filter accepts two args, as defined in the add_fitler
if ( substr( $post->post_mime_type, 0, 5 ) == 'image' ) {
$form_fields['image_alt']['value'] = '';
$form_fields['image_alt']['input'] = 'hidden';

$form_fields['post_excerpt']['value'] = '';
$form_fields['post_excerpt']['input'] = 'hidden';

$form_fields['post_content']['value'] = '';
$form_fields['post_content']['input'] = 'hidden';

$form_fields['url']['value'] = '';
$form_fields['url']['input'] = 'hidden';

$form_fields['align']['value'] = 'aligncenter';
$form_fields['align']['input'] = 'hidden';

$form_fields['image-size']['value'] = 'thumbnail';
$form_fields['image-size']['input'] = 'hidden';

$form_fields['image-caption']['value'] = 'caption';
$form_fields['image-caption']['input'] = 'hidden';

$form_fields['buttons'] = array(
'label' => '',
'value' => '',
'input' => 'html'
);
$filename = basename( $post->guid );
$attachment_id = $post->ID;
if ( current_user_can( 'delete_post', $attachment_id ) ) {

if ( !EMPTY_TRASH_DAYS ) {

$form_fields['buttons']['html'] = "<a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-attachment_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete'>" . __( 'Delete Permanently' ) . '</a>';
}

elseif ( !MEDIA_TRASH ) {

$form_fields['buttons']['html'] = "<a href='#' class='del-link' onclick=\"document.getElementById('del_attachment_$attachment_id').style.display='block';return false;\">" . __( 'Delete' ) . "</a>
<div id='del_attachment_$attachment_id' class='del-attachment' style='display:none;'>" . sprintf( __( 'You are about to delete <strong>%s</strong>.' ), $filename ) . "
<a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-attachment_' . $attachment_id ) . "' id='del[$attachment_id]' class='button'>" . __( 'Continue' ) . "</a>
<a href='#' class='button' onclick=\"this.parentNode.style.display='none';return false;\">" . __( 'Cancel' ) . "</a>
</div>";
}
else {
$form_fields['buttons']['html'] = "<a href='" . wp_nonce_url( "post.php?action=trash&amp;post=$attachment_id", 'trash-attachment_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete'>" . __( 'Move to Trash' ) . "</a><a href='" . wp_nonce_url( "post.php?action=untrash&amp;post=$attachment_id", 'untrash-attachment_' . $attachment_id ) . "' id='undo[$attachment_id]' class='undo hidden'>" . __( 'Undo' ) . "</a>";
}
}
else {
$form_fields['buttons']['html'] = '';
}
}
return $form_fields;
}
// Hook on after priority 10, because WordPress adds a couple of filters to the same hook - added accepted args(2)
add_filter('attachment_fields_to_edit', 'myAttachmentFields', 11, 2 );

 

Leave a Reply

Your email address will not be published. Required fields are marked *