Post Media Cleanup

Post Media Cleanup

Details
View on WordPress

Post Media Cleanup removes orphaned media files from your server when you permanently delete a post.

When you permanently delete a post, this plugin automatically finds and removes:

  • Featured image
  • Images and files embedded in post content
  • PDFs and any linked files in content
  • All attachments uploaded directly to the post

Key Features

  • Only fires on permanent deletion — moving to trash is always safe
  • Skip Shared Media — never deletes a file used by another post
  • Works per post type — configure exactly which types trigger cleanup
  • Compatible with S3 and cloud storage
  • Multisite ready
  • Developer friendly — filter hooks to extend behaviour

For Developers

Add extra attachments to the deletion list:

add_filter( 'postmediaweb_attachment_ids_to_delete', function( $ids, $post_id ) {
    $extra = get_post_meta( $post_id, 'my_custom_pdf', true );
    if ( $extra ) $ids[] = (int) $extra;
    return $ids;
}, 10, 2 );

Prevent a specific attachment from being deleted:

add_filter( 'postmediaweb_should_delete_attachment', function( $should, $att_id, $post_id ) {
    if ( $att_id === 999 ) return false;
    return $should;
}, 10, 3 );

Details

Plugin code:
post-media-cleanup
Plugin version:
1.0.0
Outdated:
No
WP version:
5.0 or higher
PHP version:
7.4 or higher
Test up to WP version:
7.0.1
Total installations:
0
Last updated:
2026-07-13
Rating:
Times rated:
0
attachments
cleanup
delete
images
media