Abfrage, um alle vorgestellten Bilder zu löschen und Post-Meta zu entfernen?

Ich möchte eine SQL-Abfrage ausführen, um alle vorgestellten Bilder aus den Beiträgen zu finden und die Datei selbst sowie alle Verweise darauf zu löschen.

Kann mir jemand sagen, wie ich das erreichen soll? Danke vielmals!

Solutions Collecting From Web of "Abfrage, um alle vorgestellten Bilder zu löschen und Post-Meta zu entfernen?"

Eine MYSQL-Abfrage kann die Dateien nicht selbst löschen. Sie müssen wp_delete_attachment () verwenden. Das Folgende ist ein Proof-of-Concept für Sie, um zu ändern, wie es Ihnen gefällt. Das vorgestellte Bild wird in postmeta als _thumbnail_id gespeichert. wp_delete_attachment() erledigt den Rest für Sie.

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

Verwenden Sie diese Abfrage, um Miniaturbilder und zugehörige Metadaten aus der database zu entfernen

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