站长已亲测,代码没有问题的
当WordPress/ripro日主题删除文章时,附件(例如上载到文章中的媒体库的图片)将不会自动删除,这会占用网站空间。
因此,以下说明使用简单的代码行在删除文章时自动删除缩略图和图片附件。无需手动转到媒体库即可准确有效地进行查找和删除。
请复制一下代码
/* 删除文章时删除图片附件 */
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文件的底部以添加成功
注意
删除文章时,首先执行函数内容,删除精选图片和图片 附件,但是如果您使用动作delete_post而不是before_delete_post,则会导致文章的删除,因为媒体附件和文章已被取消,无法正确删除。
文章来自AT互联https://www.at8848.cn转载请保留本链接,谢谢!