wordpress知识库
网站首页 > 知识库 > 插件知识 >

WordPress删除文章同时删除缩略图及附件

在WordPress网站中,文章和图片是在不同类目下的,我们如果删除文章时,一般图片是不会自动同时删除的,那么有没有办法来实现删除文章的同时清除缩略图和附件,本文就和大家一起来学习下。

1、使用插件:有一些插件可帮助您自动删除文章相关的缩略图和附件。例如,”Delete Thumbnail Attachments”插件可以在删除文章时自动删除相关的缩略图和附件。您只需安装并激活该wordpress插件,它会自动处理相关的删除操作。

2、手动删除:如果您不想使用插件,也可以手动删除缩略图和附件。请按照以下步骤操作:
(1)首先,在WordPress后台中找到并进入“媒体库”。
(2)在媒体库中,使用搜索或筛选功能找到与要删除的文章相关的缩略图和附件。
(3)选择要删除的缩略图和附件,并点击“批量操作”下拉菜单中的“删除永久”选项。
(4)最后,确认删除操作。

需要注意的是,手动删除缩略图和附件可能需要花费一些时间,特别是对于大量文章和附件的网站。

3、用代码进行清除,复制以下代码:

/* 删除文章时同步删除图片附件

/* ———————— */

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文件中即可使用。需要注意的是,在删除文章时先执行函数内容,删除特色图片以及图片附件,如果在使用action delete_post而不是before_delete_post将导致删除文章后因媒体附件与文章关联已取消而无法正确删除。

无论选择使用插件还是手动删除,都建议在执行操作之前备份网站数据,以防止意外数据丢失。