WordPress默认是不删除图片的,因此会在媒体库造成大量图片冗余。因此下面说明通过几行代码的简单方式实现在删除文章时自动删除缩略图以及图片附件,这样就不用手动去媒体库寻找并删除,准确而且效率高。

打开/wp-content/themes/ripro/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');

注意:如果你的特色图片是用来作封面,并且经常复用的话,请删除 // 删除特色图片 下面的那段代码。

历史上的今天
03月
14
    抱歉,历史上的今天作者很懒,什么都没写!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。