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
SO网友:Malisa
您可以尝试以下方法,我还没有测试过,所以请注意输入错误或错误:
$all_posts = get_posts(array(
\'numberposts\' => - 1,
\'post_status\' => \'any\',
\'post_type\' => get_post_types(\'\', \'names\') ,
));
foreach($all_posts as $all_post) {
delete_post_media($all_post->ID);
}
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.
}
}
}
}