成航先森 成航先森

成都航院计算机系一个学生的个人博客

 

建站分享

最新文章

建站分享
当前位置: 首页 » 建站分享 » WordPress删除文章的同时自动删除缩略图及图片附件

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

编辑:狂族晨曦 来源:建站分享WordPress技巧 日期:2015-09-12 阅读: 2,039 次 抢个沙发 百度已收录

最后更新时间: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将导致删除文章后因媒体附件与文章关联已取消而无法正确删除。


标签:
本文参考自:http://www.zhiyanblog.com/wordpress-delete-post-and-thumbnail-attachments.html,由狂族晨曦(capjsj.cn)整理编辑,本文共1116个字。
本文链接地址:https://www.capjsj.cn/wp_scwzdtszdscsltjtpfj.html , 转载请保留本说明!
已有 0 位"计工"发布了激烈的评论,还有N多人围观笑而不语评论
的头像
欢迎发表评论
取消评论

表情
疑问调皮伤心抠鼻黑线微笑可爱奸笑震惊吓到了撇嘴大兵忍不住笑笑狂骂狂怒噢?鼓掌酷⊙﹏⊙b汗鄙视大哭嘿嘿

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
官方微信
发表评论 返回顶部