WP-WordPress删除文章同时删除文章中的图片、缩略图、附件内容

2020-03-12 119 百度已收录

WordPress删除文章时,文章内所上传到媒体库的图片等附件不会自动删除,占用了网站空间,因此下面说明通过几行代码的简单方式实现在删除文章时自动删除缩略图以及图片附件,这样就不用手动去媒体库寻找并删除,准确而且效率高。

     功能实现代码

  1. /* 删除文章时删除图片附件 */

  2. function delete_post_and_attachments($post_ID) {

  3.         global $wpdb;

  4.         //删除特色图片

  5.         $thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" );

  6.         foreach ( $thumbnails as $thumbnail ) {

  7.         wp_delete_attachment( $thumbnail->meta_value, true );

  8.         }

  9.         //删除图片附件

  10.         $attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" );

  11.         foreach ( $attachments as $attachment ) {

  12.         wp_delete_attachment( $attachment->ID, true );

  13.         }

  14.         $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" );

  15. }

  16. add_action('before_delete_post', 'delete_post_and_attachments');


  17. 使用方法

将上述代码放到主题functions.php文件的最下面即可添加成功

     注意事项

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


1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有金币奖励和额外收入!
8. 重点来了,想白嫖的站长们可每日签到获取金币来免费购买本站资源,等级不同赠送金币不同哦!

官方客服团队

为您解决烦忧 - 24小时在线 专业服务