WordPress代码实现删除文章时自动删除特色图和媒体库图片数据

WordPress删除文章时,文章的特色图和上传的图片等附件不会自动删除,不止占用了空间,而且还让数据库非常冗余,对于强迫症的我是不能容忍的,对于不想装插件的我来说最好通过代码能实现自动删除文章关联的图片,开动,上代码...

/* 删除文章时删除图片附件
/* ———————— */
add_action('before_delete_post', 'delete_post_and_attachments');
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" );
}

原理是在删除文章前(before_delete_post)删除与相关联特色图、图片、附件。

1. 本站所有资源均来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,请在下载后24小时内删除!
3. 不得用于商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,均不包含技术服务请知悉!
5. 本站资源售价只是赞助,赞助费用仅维持本站的日常运营所需!
云码库 » WordPress代码实现删除文章时自动删除特色图和媒体库图片数据

发表评论

提供最优质的资源集合

立即查看 了解详情