Post Media Cleanup

Description

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

Installation

  1. Upload the plugin folder to /wp-content/plugins/
  2. Activate through the Plugins screen
  3. Go to Settings Post Media Cleanup to configure

FAQ

Does it delete media when I move a post to trash?

No. Only permanent deletion triggers cleanup. Trash is always safe.

What if the same image is used in two posts?

With Skip Shared Media enabled (default), the plugin checks before deleting. If the file is used elsewhere it is preserved.

Does it work with WooCommerce products?

Yes. Enable Products in the Post Types setting.

Does it work with S3 or cloud storage?

Yes. It uses wp_delete_attachment() which cloud storage plugins hook into automatically.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Post Media Cleanup” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Post Media Cleanup” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.0

  • Initial release