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 that you have read and understand our privacy policy and code of conduct.

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