Supprimer tous les post ayant le même titre par post-type et ne garder qu’un seul exemplaire

Si jamais un import tourne mal et importe plusieurs fois les mêmes articles, vous pouvez utiliser le code ci-dessous pour supprimer tous les posts d’un post_type avec le même titre et n’en garder qu’un seul. Il faudra modifier la valeur “post_type” selon vos besoins.

 

Ces instructions parcourront l’intégralité des posts de ce post type, pas besoin de spécifier de title.

 

<?php 

global $wpdb;

$duplicate_titles = $wpdb->get_col("SELECT post_title FROM {$wpdb->posts} WHERE `post_type` = 'post' GROUP BY post_title HAVING COUNT(*) > 1");

foreach( $duplicate_titles as $title ) {
    $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_title=%s", $title ) ); 

    // Iterate over the second ID with this post title till the last
    foreach( array_slice( $post_ids, 1 ) as $post_id ) {
        wp_delete_post( $post_id, true ); // Force delete this post
    }
}

 

Quelles sont les bonnes pratiques RSE en communication digitale ?
Prospection digitale : les étapes phares de l’élaboration de la stratégie
Structurer parfaitement l’arborescence d’un site e- commerce