Intereting Posts

Запрос на удаление всех выделенных изображений и удаление метаданных?

Я хотел бы запустить SQL-запрос, чтобы найти все признанные изображения из сообщений и удалить сам файл и любые ссылки на него.

Может ли кто-нибудь сказать мне, как это сделать? Большое спасибо!

Solutions Collecting From Web of "Запрос на удаление всех выделенных изображений и удаление метаданных?"

Запрос MYSQL не может удалять сами файлы. Вам нужно будет использовать wp_delete_attachment (). Ниже приведено доказательство того, что вы можете изменить, как вам угодно. _thumbnail_id изображение сохраняется в _thumbnail_id как _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; } } 

Используйте этот запрос для удаления изображений эскизов и связанных метаданных из базы данных

 global $wpdb; $attachments = $wpdb->get_results( " SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' " ); foreach ( $attachments as $attachment ) { wp_delete_attachment( $attachment->meta_value, true ); } $wpdb->query( " DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' " );