做网站难免对文章进行删除之类的操作,这个时候默认的是只删除文章,而不会删除文章中所含的图片附件,导致wordpress网站里面有不少并没有用的图片,占空间就算了,备份搬个家啥的文件比较大,就比较费时间。
今天再网上看到有大神分享了一段代码,恰好能解决这个问题:
→ 点此获取正规游戏试玩赚钱软件~
/* 删除文章时删除图片附件 */
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');
将该段代码复制粘贴到当前主题下的functions.php里,即刻生效。