当WordPressCMS/博客主题删除文章时,附件(如上传到文章中的媒体库的图像)不会自动删除,这会占用网站上的空间。因此,以下描述了在通过几行代码删除文章时删除缩略图和图像附件的简单方法。没有必要手动查找和删除媒体库,这是准确和有效的。
具体代码
- /* 删除文章时删除图片附件
- /* ———————— */
- 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 文件中即可使用