WordPress删除文章时自动删除特色图像及附件

 

WordPress删除文章时自动删除特色图像及附件

WordPress删除文章时默认是不会自动删除文章附属的特色图像及附件的。如果你的网站是个多作者或编辑发布文章,所有文章需要审核通过才能发布,而审核时就可能需要删除比较多的文章,但是如果删除文章每次都需手动删除特色图像及附件就会非常麻烦。即使是自己一个人的网站删除文章再手动删除附件也是怪麻烦的事。所以,我们有必要在删除文章的同时让程序自动删除特色图像及附件。以下是具体方法:

/*
删除文章时自动删除特色图像及附件
代码来源: www.wpzxbj.com
*/ 
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');

代码说明:请将以上代码插入主题function.php文件保存即可。程序将在删除文章之前先删除特色图像及附件,然后再删除文章。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享