Nous savons tous à quel point il est important d'organiser le contenu sur un site web. Chez WPBeginner, nous comprenons que l'utilisation de catégories et de sous-catégories aide les visiteurs à explorer votre site et améliore son classement dans les résultats de recherche. Une bonne structure de catégories aide également les visiteurs à trouver ce dont ils ont besoin.
La plupart des thèmes WordPress listeront automatiquement toutes les catégories associées à un article, même les sous-catégories. Cela peut rendre les choses très confuses pour vos visiteurs. Cependant, nous avons récemment eu un lecteur qui souhaitait afficher uniquement la catégorie principale sur sa page d'article unique. Il voulait que ses visiteurs se concentrent sur le sujet principal au lieu d'être submergés par de nombreuses sous-catégories.
Dans cet article, nous vous montrerons comment utiliser un simple morceau de code pour modifier la façon dont WordPress affiche les catégories. Cela vous permettra d'afficher uniquement la catégorie principale sur une page d'article unique, ce qui peut grandement améliorer l'expérience de votre site pour les visiteurs.

Quand afficher uniquement la catégorie parente dans WordPress
De nombreux propriétaires de sites web utilisent des catégories parentes et enfants pour créer une structure pour leurs sites web.
Par exemple, un blog de voyage peut avoir des destinations de voyage organisées par catégories où chaque région est une catégorie parente et les villes des catégories enfants.

De même, un blog culinaire peut publier des recettes organisées en catégories parent et enfant. Par exemple, une catégorie parente pourrait être le type de cuisine, et une catégorie enfant le type de plat.
Désormais, la plupart des thèmes WordPress utilisent la balise de modèle the_category() pour lister toutes les catégories associées à un article.
Cette fonction est efficace, mais elle affichera toutes les catégories par ordre alphabétique et ignorera complètement la relation parent/enfant.
Cela étant dit, examinons comment modifier ce comportement et n'afficher que la catégorie parente dans la boucle WordPress.
Afficher uniquement la catégorie parente dans la boucle d'articles WordPress
Pour ce tutoriel, vous devrez modifier les fichiers de votre thème WordPress. Si vous ne l'avez jamais fait auparavant, consultez notre article sur comment copier et coller des extraits de code dans WordPress.
Tout d'abord, vous devez ajouter un code au fichier functions.php de votre thème ou utiliser un plugin d'extraits de code. Nous recommandons d'utiliser WPCode car il vous permet d'ajouter du code sans casser votre site, et sa validation intelligente des extraits de code vous aide à prévenir les erreurs de code courantes.
Apprenez-en davantage dans notre guide sur comment ajouter facilement du code personnalisé dans WordPress sans casser votre site.
Pour ce tutoriel, nous utiliserons la version gratuite de WPCode. Bien qu'elle ne dispose pas de toutes les fonctionnalités avancées de la version complète, elle contient tout ce dont vous avez besoin pour commencer.
La première chose à faire est d'installer et d'activer le plugin WPCode. Si vous avez besoin d'aide, vous pouvez suivre notre guide étape par étape sur comment installer un plugin WordPress.
Après l'activation, vous pouvez aller à la page WPCode » Nouveau Snippet

Cela ouvrira une page où vous pourrez créer un snippet personnalisé.
Tout d'abord, vous devez ajouter un titre pour le snippet. Ensuite, vous pouvez copier et coller le snippet de code suivant dans le volet Aperçu du code.
function wpb_get_parent_terms($taxonomy = 'category')
{
$currentPost = get_post();
$terms = get_the_terms($currentPost->ID, $taxonomy);
if (is_wp_error($terms)) {
/** @var \WP_Error $terms */
throw new \Exception($terms->get_error_message());
}
$map = array_map(
function ($term) use ($taxonomy) {
return '<a href="' . esc_url(get_term_link($term->term_id,
$taxonomy)) . '" title="' . esc_attr($term->name) . '">
' . $term->name . '
</a>';
},
array_filter($terms, function ($term) {
return $term->parent == 0;
})
);
return implode(', ', $map);
}

Ensuite, vous devez sélectionner l’option « PHP Snippet » dans le menu déroulant Type de code et activer le commutateur Inactif sur Actif.
Enfin, assurez-vous de cliquer sur le bouton « Enregistrer le snippet » pour sauvegarder vos paramètres.

Ce code crée simplement une nouvelle fonction wpb_get_parent_terms(). Par défaut, cette fonction n’affichera que les catégories parentes.
Ensuite, vous devez placer cette fonction dans les fichiers de votre thème WordPress où vous souhaitez afficher uniquement la catégorie parente.
Pour savoir quel fichier de modèle consulter, consultez notre aide-mémoire sur la hiérarchie des modèles WordPress pour débutants.
En gros, vous rechercherez la balise de modèle the_category() ; dans la boucle WordPress. Une fois que vous l’avez trouvée, vous devez la remplacer par le code suivant :
<?php wpb_get_parent_terms(); ?>
Ce code affichera uniquement votre catégorie parente.
Si vous avez plusieurs catégories qui sont des catégories parentes ou autonomes, toutes ces catégories seront également affichées.

Le fragment de code fonctionnera également pour toutes les autres taxonomies. Par exemple, les catégories de produits WooCommerce ou toute taxonomie personnalisée que vous pourriez avoir.
Modifiez simplement le code comme ceci :
<?php wpb_get_parent_terms( 'product_cat '); ?>
Ce code affichera les catégories de produits pour un magasin WooCommerce.
Il n’affichera également que les catégories parentes ou autonomes pour un produit.

Si vous souhaitez afficher une taxonomie personnalisée, remplacez product_cat par le nom de votre taxonomie personnalisée.
Guides d’experts sur l’affichage des catégories dans WordPress
Nous espérons que cet article vous a aidé à apprendre comment afficher uniquement la catégorie parente pour vos articles WordPress. Vous voudrez peut-être aussi consulter d’autres guides liés à l’affichage des catégories WordPress :
- Comment afficher uniquement la catégorie enfant dans votre boucle de publication WordPress
- Comment afficher les sous-catégories sur les pages de catégorie dans WordPress
- Comment afficher les descriptions de catégories dans WordPress
- Comment changer l'ordre des catégories dans WordPress
- Comment afficher les articles récents d'une catégorie spécifique dans WordPress
- Comment afficher / masquer les catégories dans WordPress (Guide ultime)
- Comment afficher les catégories vides dans les widgets WordPress
- Comment styliser différemment les catégories individuelles dans WordPress
- Comment masquer ou styliser vos sous-catégories dans WordPress
- Comment ajouter des images de taxonomie (icônes de catégorie) dans WordPress
Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.


Davide
Super ! Et si je veux donner un CSS différent à ces catégories ?
Pedrille
Génial ! Merci
Nithi
Comment afficher uniquement la catégorie enfant ? (Comme dans l'image, « Thèse » ci-dessus ? )
Cami Tirapani
Je me pose la même question. :/
Joseph
Je sais que c'est ancien, mais ce serait juste la catégorie actuelle
sathish
très utile
JordashTalon
Vous devriez voter pour ce post sur Wordpress. J'ai remarqué un grand manque d'ajout de la fonctionnalité de profondeur aux fonctions Wordpress : http://wordpress.org/extend/ideas/topic/add-depth-parameter-to-the_category?replies=3#post-21041
JordashTalon
Fonctions de catégorie Wordpress, c'est-à-dire
Kate M
Didn’t work for me
AselHora
ajoutez des horodatages à vos articles. ainsi nous saurons quand vous l'avez écrit et n'incluez pas d'extraits de code vieux de 5 ans.
John Saddington
super tuto !