I want to delete all the images. By all I means Images from Media Library as well as the from posts. I have 4000 images in wordpress upload directory and each image is attached to a post.

By 'detach' and deleting a image permanently form Media Manger is not removing the image from the Post. :(

I searched and could not find any plugin. There is a plugin to search and delete all unattached / unused images. But I want to delete all the used images from Media Manager, Posts and Any Database References...

This is a great community and I hope I will able to fix this problem...

Thanks! Rohit

1 Answer 1


You could try the following, I havent tested it, so look out for typos or errors:

$all_posts = get_posts(array(
    'numberposts' => - 1,
    'post_status' => 'any',
    'post_type' => get_post_types('', 'names') ,

foreach($all_posts as $all_post) {

function delete_post_media($post_id)
    if (!isset($post_id)) return;
    elseif ($post_id == 0) return;
    elseif (is_array($post_id)) return;
    else {
            $attachments = get_posts(array(
                    'post_type' => 'attachment',
                    'posts_per_page' => - 1,
                    'post_status' => 'any',
                    'post_parent' => $post_id
            foreach($attachments as $attachment) {
                    if (false === wp_delete_attachment($attachment->ID)) {

                            // Log failure to delete attachment.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.