WordPress怎样实行删掉文章时一起删除图片包括的附件
肾不行来瓶酒
2022年03月28日 19:02

只需将底下的 PHP 代码加入到:themes/xxx/functions.php 底部就行了

代码块
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将导致删除文章后因媒体附件与文章关联已取消而无法正确删除。

版权声明:本文由小龟网发布,如需转载请注明出处。

🤗作品 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

我感觉不错就分享了

原文文章来自:https://www.xiaoguiwang.net/jishuccheng/75.html