Home / attachment / Remove featured image when deleting post with wp_delete_attachment
  • How to Remove featured image when deleting post with wp_delete_attachment


    In a recent project I needed to create posts and upload images from the front end as featured image. So as a result I also needed to remove these attachments when people deleted the posts. Otherwise we would have a lot of orphan images using up lots of precious space in our WordPress Media Library. Adding this snippet to the functions.php of your WordPress theme will remove featured images when you delete a post using before_delete_post hook. You will want to be careful with this snippet if you attach the same image to multiple posts as the featured image so keep that in mind. One other thing to remember is that media library items are deleted when the post is deleted not put into trash so you will need to fully delete the post to see the image removed.

    ( click code to copy )

    wordpress snippet : PHP

    add_action( 'before_delete_post', 'wps_remove_attachment_with_post', 10 );
    function wps_remove_attachment_with_post($post_id)
    	if(has_post_thumbnail( $post_id ))
    	  $attachment_id = get_post_thumbnail_id( $post_id );
    	  wp_delete_attachment($attachment_id, true);

    ( WordPress codex functions, hooks, in this snippet. )

    delete_post, get_post, has_post_thumbnail, wp_delete_attachment, add_action, wp,