文章最后更新时间:

最近发现wordpress想要删除已经发布的文章后发现 文章的附件不会自动删除,如果文件较多还需要慢慢找,有些人嫌麻烦就不删了,那么程序占用会越来越大
今天发布一个删除文章后自动删除文章的上传附件代码,简单实用 (注意不管是前台删除还是后台删除,删除后都需要去后台所有文章-回收站删除,因为正常删除会保留到回收站)
将下方代码直接放入主题的 functions.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');
© 版权声明
© 版权声明 All Rights Reserved
THE END










暂无评论内容