代码实现WordPress在删除文章后同时清理图片附件

WordPress删除文章时,文章上传到媒体库图片等不会被自动删除,占用网站空间,那么WordPress在删除文章后如何清理图片附件呢?接下来为大家分享一下几段代码,可以自动删除文章时的缩略图和图片附件,使您不必手动转到媒体库查找和删除,准确高效。

功能实现代码如下:
<span class="hljs-comment">//删除文章时删除图片附件开始</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">delete_post_and_attachments</span>(<span class="hljs-params">$post_ID</span>) </span>{
    <span class="hljs-keyword">global</span> $wpdb;
    <span class="hljs-comment">//删除特色图片</span>
    $thumbnails = $wpdb->get_results( <span class="hljs-string">"SELECT * FROM <span class="hljs-subst">$wpdb</span>->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = <span class="hljs-subst">$post_ID</span>"</span> );
    <span class="hljs-keyword">foreach</span> ( $thumbnails <span class="hljs-keyword">as</span> $thumbnail ) {
        wp_delete_attachment( $thumbnail->meta_value, <span class="hljs-literal">true</span> );
    }
    <span class="hljs-comment">//删除图片附件</span>
    $attachments = $wpdb->get_results( <span class="hljs-string">"SELECT * FROM <span class="hljs-subst">$wpdb</span>->posts WHERE post_parent = <span class="hljs-subst">$post_ID</span> AND post_type = 'attachment'"</span> );
    <span class="hljs-keyword">foreach</span> ( $attachments <span class="hljs-keyword">as</span> $attachment ) {
        wp_delete_attachment( $attachment->ID, <span class="hljs-literal">true</span> );
    }
    $wpdb->query( <span class="hljs-string">"DELETE FROM <span class="hljs-subst">$wpdb</span>->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = <span class="hljs-subst">$post_ID</span>"</span> );
}
add_action(<span class="hljs-string">'before_delete_post'</span>, <span class="hljs-string">'delete_post_and_attachments'</span>);
<span class="hljs-comment">//删除文章时删除图片附件</span>

使用方法

您可以通过将上面的代码放在主题functions.php文件的底部,就可以成功添加了。

添加代码注意事项:

删除文章时,先执行函数内容、删除功能图片和图片附件,但如果使用action delete_post而不是before_delete_post,将导致删除文章后因媒体附件与文章关联已取消而无法正确删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值