wordpress删除文章的时候,自动删除文章图片怎么实现?

做网站难免对文章进行删除之类的操作,这个时候默认的是只删除文章,而不会删除文章中所含的图片附件,导致wordpress网站里面有不少并没有用的图片,占空间就算了,备份搬个家啥的文件比较大,就比较费时间。

wordpress删除文章的时候,自动删除文章图片怎么实现?

今天再网上看到有大神分享了一段代码,恰好能解决这个问题:

/* 删除文章时删除图片附件 */
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');

将该段代码复制粘贴到当前主题下的functions.php里,即刻生效。

游乐星球 点此下载

相关推荐

WordPress去掉网址后缀index.php

最近网站降权的厉害,可以说一撸到底,不过也让我发现了个问题,那就是明明设置了伪静态,竟然还是收录了带index.php的页面,真的有点奇怪啊。 不过我们可以通过一些设置来避免这个。 Apache(一般配置文件是.htacce ...