这是我的question 这确实解决了我的问题,嗯,有一点。
我注意到我的上传文件夹中仍然有图像,但大小不同。有没有办法删除我上传的图像的所有痕迹?看来wp_delete_attachment
仅删除“附加”的图像,而不删除Wordpress自动创建的其他图像大小。
我使用此函数生成附件ID
function insert_attachment( $file_handler, $post_id, $setthumb=\'false\' ) {
// check to make sure its a successful upload
if ($_FILES[$file_handler][\'error\'] !== UPLOAD_ERR_OK) __return_false();
require_once(ABSPATH . "wp-admin" . \'/includes/image.php\');
require_once(ABSPATH . "wp-admin" . \'/includes/file.php\');
require_once(ABSPATH . "wp-admin" . \'/includes/media.php\');
$attach_id = media_handle_upload( $file_handler, $post_id );
if ($setthumb) update_post_meta($post_id,\'_thumbnail_id\',$attach_id);
return $attach_id;
}
(我是从:
http://goldenapplesdesign.com/2010/07/03/front-end-file-uploads-in-wordpress/)
我使用它在前端进行自定义文件上载,而不是使用媒体库进行常规上载。这适用于需要用户上载的站点。
有什么想法吗?
SO网友:Lucas Bustamante
这可以通过以下方式实现wp_delete_attachment( $attachment->ID );
以下是删除与帖子相关的所有附件的示例:
// Delete Attachments from Post ID 25
$attachments = get_posts(
array(
\'post_type\' => \'attachment\',
\'posts_per_page\' => -1,
\'post_status\' => \'any\',
\'post_parent\' => 25,
)
);
foreach ( $attachments as $attachment ) {
wp_delete_attachment( $attachment->ID );
}