Comment supprimer les Shortcodes Divi après une migration vers Elementor ?

Comment supprimer les Shortcodes Divi après une migration vers Elementor ?
WordPress Lecture 4 minutes • 13 mars 2025

Divi est un page builder qui structure le contenu des articles avec des shortcodes. Lorsqu’il est désactivé, ces shortcodes ne sont plus interprétés et s’affichent directement dans le texte. Elementor, lui, utilise une approche différente et ne les reconnaît pas. Résultat ? Une migration laisse souvent un contenu désordonné.

Ce tuto est également valable si vous migrez du contenu depuis Divi vers l'éditeur natif de WordPress nommé Gutenberg.

Ce nettoyage automatique va vous faire gagner un temps précieux dans votre migration de contenus !

La solution : une simple fonction PHP pour nettoyer les shortcodes Divi dans vos Articles

Préambule

Avant tout, faites une sauvegarde des articles et/ou pages d'origine !
Vous pouvez utiliser l'outils d'export de WordPress : Outils > Exporter
Ou bien un module plus avancé tel que WP All Export

Rentrons dans le vif du sujet

Plutôt que d’éditer manuellement chaque article, voici une fonction PHP qui supprime automatiquement tous les shortcodes Divi inutilisés !
(et conserve les divs HTML des titres et boutons)

➡️ Ajoutez cette fonction dans le fichier functions.php de votre thème (ex : Hello Elementor...)

function delete_divi_shortcodes_posts() {
    global $wpdb;

    // Récupère tous les articles
    $posts = $wpdb->get_results("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_type = 'post'");

    if ($posts) {
        foreach ($posts as $post) {
            // Supprimer tous les shortcodes Divi
            $clean_content = preg_replace('/\[(\/?et_pb[^\]]*)\]/', '', $post->post_content);

            // Supprimer la classe 'et_pb_module_heading' des balises h1, h2, h3, h4, h5
            $clean_content = preg_replace('/(<h[1-5][^>]*?) class="et_pb_module_heading"([^>]*?>)/', '$1$2', $clean_content);

            // Supprimer la classe 'et_pb_button' des divs
            $clean_content = preg_replace('/(<div[^>]*?) class="et_pb_button"([^>]*?>)/', '$1$2', $clean_content);

            // Mettre à jour uniquement si le contenu a été modifié
            if ($clean_content !== $post->post_content) {
                $wpdb->update(
                    $wpdb->posts,
                    ['post_content' => $clean_content],
                    ['ID' => $post->ID],
                    ['%s'],
                    ['%d']
                );
            }
        }
    }
}
add_action('init', 'delete_divi_shortcodes_posts');

💡 Attention : Une fois la fonction exécutée, pensez à supprimer le code de votre fichier functions.php pour éviter qu’il ne tourne en boucle à chaque chargement de page !

La fonction PHP pour nettoyer les shortcodes Divi dans vos Pages

Variante de la fonction précédente, celle-ci ira nettoyer les shortcodes Divi dans vos Pages.

function delete_divi_shortcodes_pages() {
    global $wpdb;

    // Récupère toutes les pages (post_type = 'page')
    $pages = $wpdb->get_results("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_type = 'page'");

    if ($pages) {
        foreach ($pages as $page) {
            // Supprimer tous les shortcodes Divi
            $clean_content = preg_replace('/\[(\/?et_pb[^\]]*)\]/', '', $page->post_content);

            // Supprimer la classe 'et_pb_module_heading' des balises h1, h2, h3, h4, h5
            $clean_content = preg_replace('/(<h[1-5][^>]*?) class="et_pb_module_heading"([^>]*?>)/', '$1$2', $clean_content);

            // Supprimer la classe 'et_pb_button' des divs
            $clean_content = preg_replace('/(<div[^>]*?) class="et_pb_button"([^>]*?>)/', '$1$2', $clean_content);

            // Mettre à jour uniquement si le contenu a été modifié
            if ($clean_content !== $page->post_content) {
                $wpdb->update(
                    $wpdb->posts,
                    ['post_content' => $clean_content],
                    ['ID' => $page->ID],
                    ['%s'],
                    ['%d']
                );
            }
        }
    }
}
add_action('init', 'delete_divi_shortcodes_pages');

Conclusion

La migration de Divi vers Elementor ou l'éditeur natif de WordPress ne doit pas être un casse-tête. Avec cette fonction PHP, vous pouvez supprimer les shortcodes DIvi inutiles et retrouver un contenu propre sans passer des heures à modifier chaque page ou article WordPress manuellement.

Et vous, avez-vous déjà rencontré ce problème lors d’une migration ?
Partagez vos astuces et remarques en commentaire ! 🚀

Besoin d'un expert pour améliorer les performances de votre site internet ?

Contactez-moi pour en discuter ensemble !
Recevez un audit et une estimation gratuite des optimisations à apporter à votre site web.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *