wordpress删除文章同时清除文章中的图片和附件

wordpress删除文章同时清除文章中的图片和附件
wordpress

WP更新文章,有时候需要上传一些图片和附件来插入到文章中。

因为每一篇文章都可能有配图,所以最终服务器资源受不了。

我个人就用上了压缩插件,将图片压缩在插入。

文章《优化图像减少页面加载的6种方法》中的 tinypng 插件就是我个人使用的一款插件(可以在商店中搜索配置)。

当然也可以使用软件先批量压缩。

压缩工具:

批量图片压缩小工具(多格式:PNG,JPG,webp…)

睿思图片压缩工具(自由设定压缩比例 支持批量压缩)


但是一旦删除一篇文章,文章中的图片是不会被删除依然保留在媒体库中。

今天这个方法就是可以让你在删除文章的时候,同时删除这篇文章中的图片与附件。

方法

只需将下面的 PHP 代码加入到主题目录下的 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');
//删除文章时删除图片附件结束
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
广告位招租919838898
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索