Supprimer en masse des custom posts WordPress

Supprimer en masse des custom posts WordPress
WordPress Lecture 2 minutes • 20 décembre 2021

Voici un bout de code PHP simple qui permet de supprimer à la volée plusieurs centaines de posts (articles ou custom post type) dans WordPress.

  1. Copier/coller le code suivant dans votre fichier footer.php juste avant la ligne <?php wp_footer(); ?>
  2. Adapter le code selon les consignes indiquées dans l'exemple puis sauvegarder.
  3. Visiter ensuite n'importe qu'elle page du site pour lancer la suppression.
  4. Supprimer le code une fois que tous les posts sont supprimés.
$mycustomposts = get_posts( array( 'post_type' => 'monposttype', 'numberposts' => 300));
// Remplacer monposttype par le votre.
// 300 = nombre de posts supprimés en un chargement de page. A ajuster si besoin.
    echo '<pre>';
    print_r($mycustomposts);
    echo '</pre>';
   foreach( $mycustomposts as $mypost ) {
     // Supprime chaque post.
     wp_delete_post( $mypost->ID, true);
     // Mettre false pour les mettre à la corbeille au lieu de les supprimer.
   }
   echo '<h1 style=:"color:red;">Suppression réussie !</h1>';

En complément, il est possible à la suite de l'opération de s'assurer que la base de données est bien propre et que des données orphelines ne trainent pas surtout dans la table postmeta. Pour cela, je vous recommande d'installer l'extension Advanced Database Cleaner.

Si cette article vous a aidé, lâchez un petit applaudissement juste en dessous !


Si cet article vous a aidé, lâchez votre plus bel applaudissement en remerciement ! 🤗