如果我们网站有在使用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张图片。
媒体库显示图片上传到的文章。
现在将文章进行删除,WordPress是将图片放到回收站,如果要彻底删除,只能进入回收站删除,
如果将文章移到回收站,图片是不会删除的,必须进入回收站把文章彻底删除,文章中的图片才会一起删除
从回收站把文章永久删除后,媒体库里的图片已经一起被删除了
至此,文章结束
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END