web-dev-qa-db-fra.com

Comment supprimer en masse des images de la bibliothèque multimédia

J'ai besoin de ton aide. J'essaie de supprimer en masse les pièces jointes d'un type d'article personnalisé ("livre") à l'aide d'une requête SQL. J'ai trouvé cet extrait sur le formulaire wordpress: Wordpress.org

Je l'ai testé sur mon ordinateur local et il a supprimé toutes les pièces jointes de ma médiathèque. Maintenant, j'aimerais avoir votre aide pour définir la requête de sorte qu'elle ne cible que les pièces jointes (image sélectionnée et vignette) de mon type de message personnalisé "livre".

Merci

1
user51781

Vous pouvez le faire avec des appels WordPress codex natifs comme celui-ci (source http://badlywired.com/technical-stuff/2014/11/10/code-to-delete-all-images-from-wordpress-or-nearly -tout/ )

<?php
/*  create this code in a file in the main wordpress directory e.g. delmedia.php
and access it via mydomain.com/delmedia.php
*/
// Include the wp-load'er
include('wp-load.php');
$args= array(
'post_type'      => 'book', // obvious
'posts_per_page' => -1            // get them all 
);

// get all attachments post ids
$posts = get_posts( $args );
foreach ($posts as $post_id) {
   // get an array of image data
   $image_attributes = wp_get_attachment_image_src( $post_id->ID );
   if (strpos($image_attributes[0], 'mystring') !== FALSE){
   echo 'Image Found : '.$image_attributes[0];
   if (false === wp_delete_attachment( wp_delete_attachment( $post_id->ID, true     ) ) ) {
       echo ' and delete failed!<br>';
     } else {
       echo ' and delete succeeded!<br>';
     }
   }
}
?>
1
user57429

Combinant deux méthodes ici:

$args = array(
'post_type' => 'attachment',
'numberposts' => null,
'post_status' => null,
'post_parent' => $post_id
);

$attachments = get_posts($args);
if ($attachments) {
DELETE FROM wp_postmeta
WHERE post_id IN
(
SELECT id
FROM wp_posts
    WHERE (post_type = 'book')
)
;
    }
};

puis:

DELETE FROM wp_posts WHERE (post_type = 'book')

Cela devrait vous donner des types de message qui sont des pièces jointes et des livres combinés ...

0
eyoung100