vendredi 25 septembre 2026

À propos

Contact

Tips

Fusionner deux étiquettes ou catégories en double sans y passer la journée

Réattribuer en masse les contenus d'un terme vers un autre avant de supprimer le doublon, à l'aide d'un script WP-CLI simple et sûr.

Par Clément Hadrot • 6 août 2023 • 5 min de lecture • Aucun commentaire
Fusionner deux étiquettes ou catégories en double sans y passer la journée

Sur un site qui accumule des étiquettes depuis plusieurs années sans discipline de nommage stricte, il n’est pas rare de retrouver « Astuce » et « Astuces », « Marketing digital » et « Marketing Digital » avec une majuscule différente, ou encore « SEO » et « Référencement » utilisés indifféremment pour désigner exactement le même sujet. WordPress ne propose aucune fonction native pour fusionner deux termes en un seul : il faut réattribuer manuellement chaque contenu concerné avant de pouvoir supprimer le doublon sans perte.

Faire cela à la main depuis l’interface, article par article, devient vite fastidieux dès que plusieurs dizaines de contenus sont concernés. Un script WP-CLI simple couvre l’ensemble du besoin en quelques commandes.

Étape 1 : identifier les identifiants des deux termes

wp term list post_tag --search="Astuce*" --fields=term_id,name,slug,count

Cette commande liste tous les termes de la taxonomie post_tag dont le nom commence par « Astuce », avec leur identifiant, leur slug et le nombre de contenus associés. Elle permet de confirmer visuellement lequel des deux termes garder comme référence, en général celui qui compte le plus grand nombre de contenus déjà associés.

L'essentiel à retenir : WordPress ne propose aucune fusion native de termes ; wp term list et wp post list combinés couvrent tout le besoin ; Toujours vérifier le résultat avant de supprimer le doublon

Étape 2 : lister les articles associés au terme à supprimer

wp post list --tag_id=57 --field=ID

Cette commande renvoie uniquement les identifiants des articles associés à l’étiquette portant l’identifiant 57, celle qu’on s’apprête à fusionner vers une autre.

Étape 3 : réattribuer chaque article vers le terme conservé

for id in $(wp post list --tag_id=57 --field=ID); do
    wp post term add $id post_tag 42 # 42 est l'identifiant du terme conservé
done

La commande wp post term add ajoute le terme cible à chaque article sans retirer les autres étiquettes déjà présentes, un comportement additif qui évite toute perte accidentelle de classification existante.

Étape 4 : vérifier avant de supprimer le doublon

wp term list post_tag --include=42 --fields=term_id,name,count

Le compteur count du terme conservé doit désormais refléter la somme des contenus des deux termes d’origine, moins les éventuels contenus déjà associés aux deux à la fois. Ce contrôle avant suppression reste l’étape la plus importante de toute la manipulation.

Étape 5 : supprimer le terme devenu inutile

wp term delete post_tag 57

Une fois cette dernière commande exécutée, l’ancien terme disparaît définitivement, sans affecter les articles qui portent désormais tous le terme conservé.

Adapter le script à une catégorie plutôt qu’une étiquette

Le principe reste identique pour la taxonomie category, en remplaçant simplement post_tag par category dans chaque commande, et --tag_id par --cat pour le filtre de la liste des articles :

for id in $(wp post list --cat=12 --field=ID); do
    wp post term add $id category 9
done
wp term delete category 12

Précautions avant de lancer l’opération

  • Effectuer une sauvegarde de la base de données avant toute fusion, même si les commandes utilisées restent additives et réversibles individuellement.
  • Tester d’abord sur un environnement de recette identique à la production, en particulier sur un site avec un volume important de contenus.
  • Vérifier qu’aucune redirection ou lien externe ne pointe spécifiquement vers l’archive du terme qui va disparaître, sous peine de créer des liens brisés après la fusion.

Automatiser la détection des doublons probables

Sur un site avec plusieurs centaines d’étiquettes accumulées, repérer les doublons à l’œil devient difficile. Une commande combinant wp term list avec un tri par nom permet au moins de faire ressortir les candidats les plus évidents, ceux qui ne diffèrent que par une majuscule ou un pluriel :

wp term list post_tag --field=name --orderby=name | sort -f | uniq -di

Cette commande ne détecte que les doublons strictement identiques une fois la casse ignorée : elle ne remplacera jamais une relecture humaine pour repérer des synonymes comme « SEO » et « Référencement », qui restent sémantiquement liés sans être identifiables par un simple traitement de texte.

Le cas particulier des taxonomies personnalisées

Pour une taxonomie déclarée par une extension métier, par exemple marque sur un site e-commerce, exactement le même script fonctionne en substituant son nom à post_tag ou category, à condition que la taxonomie reste bien associée au type de contenu ciblé par wp post list. Si plusieurs types de contenu partagent la même taxonomie, ajouter --post_type= à la commande de listage évite d’oublier des contenus lors de la réattribution.

Une fusion de termes bien menée reste invisible pour le lecteur final : les contenus restent classés, l’archive fonctionne toujours, seul le doublon a disparu proprement de l’interface d’administration.

En résumé

WP-CLI comble une lacune réelle de l’interface WordPress native : fusionner deux termes en double demande cinq commandes simples, enchaînées avec prudence et vérifiées à chaque étape. Cette manipulation de taxonomie n’a aucun rapport avec un export de contenu au format CSV, un besoin voisin mais distinct déjà traité séparément.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi