Vous êtes ici : SeoMix » WordPress » Thèmes WordPress » WordPress : récupérer les catégories parentes de the_category

WordPress : récupérer les catégories parentes de the_category

L'ergonomie est un maître mot pour optimiser un site Internet. Et sur les blogs WordPress, une lacune est souvent présente : la fonction the_category ne renvoie que la catégorie actuelle sans les catégories mères...

Mais un petite astuce permet de contourner ce problème d'ergonomie. Une image d'exemple valant mieux que 100 mots :

Hack pour les catégories mères de The_Category sous WordPress

Hack pour les catégories mères de The_Category sous WordPress

Affichez les catégories parentes dans WordPress

Sans liens ahref

Pour chaque code, j'ai choisi de séparer chaque élément par le signe ». Libre à vous de le modifier en modifier le code html "»".

Juste les catégories parentes :

<?php
    foreach((get_the_category()) as $childcat) {
    $parentcat = $childcat->category_parent;
    if( $parentcat != 0 ) echo '' .get_cat_name($parentcat) .' &raquo; ';
} ?>

Avec la catégorie actuelle :

<?php
    foreach((get_the_category()) as $childcat) {
    $parentcat = $childcat->category_parent;
    if( $parentcat != 0 ) echo '' .get_cat_name($parentcat) .' &raquo; ';}
    the_category(',') ?>

Avec liens ahref

Juste les catégories parentes :

<?php
    foreach((get_the_category()) as $childcat) {
    $parentcat = $childcat->category_parent;
    if( $parentcat != 0 ) echo '<a class="external" href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a> &raquo; ';}
?>

Avec la catégorie actuelle :

<?php
    foreach((get_the_category()) as $childcat) {
    $parentcat = $childcat->category_parent;
    if( $parentcat != 0 ) echo '<a class="external" href="' . get_category_link($parentcat) .'">' .get_cat_name($parentcat) .'</a> &raquo; ';}
    the_category(',');
?>

Pourquoi afficher les catégories mères?

Indiquez au visiteur où il est

Simple, efficace et pratique, ce code permet de retrouver le béaba de l'ergonomie web : dire à vos visiteurs où ils se trouvent et là où ils vont aller. Un exemple concret sur SeoMix :

J'ai une catégorie Wordpress, qui contient une sous catégorie référencement. Si je n'affiche que la sous catégorie, j'induis partiellement en erreur mes visiteurs qui pourraient croire que cet article de référencement s'applique à tous les sites, et non pas seulement à WordPress. Ou encore cette sous-catégorie hack et fonctions, où le même problème apparaîtrait.

Un peu de référencement WordPress

Le second avantage du premier hack (celui sans les liens a href) est le référencement naturel de votre blog. Si vous dupliquer un lien dans une même page, vous diluez et perdez de la popularité : Google s'arrête en effet au premier lien trouvé sans prendre en compte les suivants, ce qui dilue la "puissance" donnée à chaque lien.

Ne pas mettre de lien dans ce chemin de navigation d'articles permet donc de ne pas dupliquer vos liens entre le bloc d'articles, votre menu et/ou votre sidebar, tout en donnant un vrai plus à vos visiteurs.

Source : Creating the parent category (WordPress Support forum)

N'hésitez pas à donner votre avis sur ce petit hack.

Publicité SeoMix
Les thèmes relatifs

Voici les thématiques abordées par WordPress : récupérer les catégories parentes de the_category:

7 commentaires sur WordPress : récupérer les catégories parentes de the_category

  1. Crunch
    11 messages

    Crunch - Le 17 août 2010 à 1 h 27 min

    Vraiment sympa cette astuce, je prend !

    Par contre tu parles d’éviter de mettre plusieurs fois le même lien pour éviter la duplication mais aussi la perte de poids mais en regardant bien, cette catégorie (ici thèmes) est présente 3 fois dans la page : dans le header (logique), dans le plan de site (logique aussi) mais elle y est aussi dans le début de l’article donc je pense que tu devrais utiliser la méthode sans ahref pour la catégorie enfant comme tu le fais pour la mère, fin jdis ça, jdis rien ;)

  2. Daniel Roch
    449 messages

    Daniel Roch - Le 17 août 2010 à 9 h 32 min

    Les cordonniers sont toujours les plus mals chaussés… J’ai encore quelques optimisations à faire ici et là. ;)

  3. 1 message

    CamT - Le 7 septembre 2010 à 23 h 48 min

    Super mais je l’ajoute dans quelle page le code ?

  4. Daniel Roch
    449 messages

    Daniel Roch - Le 8 septembre 2010 à 10 h 09 min

    @CamT : il s’ajoute là où il y a besoin. Moi par exemple, je l’ai ajouté dans le fichier single.php, dans le haut de l’article. Tout dépend de ton thème et de ton site.

  5. 1 message

    edouard - Le 24 octobre 2010 à 2 h 56 min

    Bonjour,

    C’est très cool ce post mais en l’utilisant j’ai jugé bon d’ajouter une ligne pour ne pas avoir une répétition de la catégorie mère (en cas de plusieurs sous-catégories);, que voici:
    $tmp[] = $parentcat;
    Et une vérification de cette ligne comme ceci:
    !in_array($parentcat, $tmp)
    Et voici ce que ça donne ;)

    category_parent;
     if( $parentcat != 0 &amp;&amp; !in_array($parentcat, $tmp)) {
       echo '&#139;a href="' . get_category_link($parentcat) .'"&#155;' .get_cat_name($parentcat) .'&#139;/a&#155; ';
       $tmp[] = $parentcat;
     }
    }
    ?&gt;

    NOTE: peut être que je me trompe ^^. en tout cas re-merci :)

  6. Daniel Roch
    449 messages

    Daniel Roch - Le 24 octobre 2010 à 14 h 19 min

    j’avoue que mes article sont toujours placés dans une seule catégorie, donc je n’avais jamais envisagé ton cas de figure. Merci beaucoup pour le partage de ton code. :)

  7. tibeoh
    1 message

    tibeoh - Le 2 janvier 2011 à 20 h 23 min

    Super astuce ! Je l’ai ajouté sur mon site tonvoyage.fr !

    Merci beaucoup !
    Il me manque juste l’astuce pour ajouter le nom de l’article affiché !

Les commentaires sont fermés. Si vous voulez rajouter un élément important à la conversation, utilisez le formulaire de contact de SeoMix.

© 2010-2012 SeoMix : WordPress & Référencement
Propulsé par WordPress & Daniel Roch. Logo par Willy Bahuaud

Suivez-nous !

4046 abonnés - 111 articles - 2271 messages

Les tests en cours
Seo et emarketing
WordPress
Mes autres sites

SeoMix, par Daniel Roch sur WordPress - 87 rue du Châtelier 44400 Rezé - Me contacter par Email