wordpress在删除已发布文章时删除文章内图片
今年的服务器也是各种活动,很多站长也选择 1 核 2 G 1 M的服务器做自己的网站,但是这些服务器最多也就50G内容,上传到服务器的图片在文章删除的时候并不会随着删除,当文章特别多的时候,根本就分不清那个是已删除文章所调用的图片,今天归一带来的教程是,在删除文章时自动删除本地调用的图片,尽可能的减少服务器的占用
代码:
//、删除图片附件
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末尾处添加上面的代码,在下次删除文章的时候便会自动删除文章调用的特殊图片 图片文件等