WordPress删除文章的同时自动删除缩略图及图片附件
编辑:狂族晨曦 来源:建站分享,WordPress技巧 日期:2015-09-12 阅读: 2,309 次 抢个沙发 百度已收录
最后更新时间:2015-10-10
 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');
说明
这段代码会在删除文章时先执行函数内容,删除特色图片以及图片附件,如果在使用action delete_post而不是before_delete_post将导致删除文章后因媒体附件与文章关联已取消而无法正确删除。
 标签: WordPress 
  本文参考自:http://www.zhiyanblog.com/wordpress-delete-post-and-thumbnail-attachments.html,由狂族晨曦(capjsj.cn)整理编辑,本文共1116个字。 
本文链接地址:https://www.capjsj.cn/wp_scwzdtszdscsltjtpfj.html , 转载请保留本说明!
  本文链接地址:https://www.capjsj.cn/wp_scwzdtszdscsltjtpfj.html , 转载请保留本说明!
相关文章
 已有 0 位"计工"发布了激烈的评论,还有N多人围观笑而不语评论
 
 
 
 
 
 
 
 
 
 
 
川公网安备 51011202000104号