Query para excluir todas as imagens apresentadas e remover post meta?

Gostaria de executar uma consulta SQL para encontrar todas as imagens apresentadas a partir de postagens e excluir o próprio arquivo e quaisquer referências a ele.

Alguém pode me dizer como fazer isso? Muito Obrigado!

Solutions Collecting From Web of "Query para excluir todas as imagens apresentadas e remover post meta?"

Uma consulta MYSQL não pode excluir os próprios arquivos. Você terá que usar wp_delete_attachment (). O seguinte é uma prova de conceito para você alterar a forma como você deseja. A imagem em destaque é armazenada no postmeta como _thumbnail_id . wp_delete_attachment() faz o resto para você.

 < ?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; } } 

Use esta consulta para remover imagens de miniaturas e metadados associados do database

 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' " );