WordPress删除文章时自动删除文章中的图片附件缩略图

如果我们网站有在使用WordPress程序的时候,如果内容不满意删除但是正常是不会同时删除文章中自带的附件、图片、缩略图。这样如果在清理文章的时候,图片不清理会使得空间容易占用量比较大。我们为了合理的利用服务器资源,我们还是希望在删除文章的时候自动清理附件内容。

只要把以下代码加在主题目录的 functions.php 中即可实现:

/* 删除文章时删除图片附件 
/* ------------------------ */ 
function delete_post_and_attachments($post_ID) { 
global $wpdb; 
//删除特色图片 
$thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); 
foreach ( $thumbnails as $thumbnail ) { 
wp_delete_attachment( $thumbnail->meta_value, true ); 
} 
//删除图片附件 
$attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" ); 
foreach ( $attachments as $attachment ) { 
wp_delete_attachment( $attachment->ID, true ); 
} 
$wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); 
} 
add_action('before_delete_post', 'delete_post_and_attachments');

看下演示图,发布一篇文章,文章中带有4张图,进入媒体库可以看到4张图片。

图片[1]-WordPress删除文章时自动删除文章中的图片附件缩略图-WordPress日记

媒体库显示图片上传到的文章。

图片[2]-WordPress删除文章时自动删除文章中的图片附件缩略图-WordPress日记

现在将文章进行删除,WordPress是将图片放到回收站,如果要彻底删除,只能进入回收站删除,

图片[3]-WordPress删除文章时自动删除文章中的图片附件缩略图-WordPress日记

如果将文章移到回收站,图片是不会删除的,必须进入回收站把文章彻底删除,文章中的图片才会一起删除

图片[4]-WordPress删除文章时自动删除文章中的图片附件缩略图-WordPress日记

从回收站把文章永久删除后,媒体库里的图片已经一起被删除了

该功能已经整合到QQWord收藏家插件中,请查看插件介绍

图片[5]-WordPress删除文章时自动删除文章中的图片附件缩略图-WordPress日记

至此,文章结束

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享