MYSQL查询无法删除文件本身。您必须使用wp\\u delete\\u attachment()。以下是一个概念证明,您可以根据自己的意愿进行更改。特色图像在Posteta中存储为_thumbnail_id
. wp_delete_attachment()
其余的都是为你做的。
<?php
/*
Plugin Name: Delete All Featured Images
Description: Delete all featured images by visiting /?delete-featured-images=1
Version: 0.1
Author: Brian Fegter
Author URI: http://coderrr.com
License: GPL3v2
*/
# USAGE: visit http://yourdomain.com/?delete-featured-images=1
add_action(\'init\', \'foo_bar_delete_featured\', 0);
function foo_bar_delete_featured(){
# Check for logged in state
if(!is_user_logged_in())
return;
# Check for admin role
if(!current_user_can(\'manage_options\'))
return;
# Check for query string
if(isset($_GET[\'delete-featured-images\']) && $_GET[\'delete-featured-images\'] == 1){
global $wpdb;
# Run a DQL to get all featured image rows
$attachments = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = \'_thumbnail_id\'");
foreach($attachments as $attachment){
# Run a DML to remove this featured image row
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE meta_id = \'$attachment->meta_id\' LIMIT 1");
# Delete attachment DB rows and files
wp_delete_attachment($attachment->meta_value, true);
# Print to screen
show_message(\'Attachment #$attachment->meta_value deleted.\');
}
exit;
}
}