Accueil > WordPress > Optimisation technique de WordPress > Wordpress : récupérez l'ID d'une catégorie

WordPress : récupérez l’ID d’une catégorie

ID de catégorie WordPress

Et zou, un petit bout de code bien utile pour WordPress, pour retrouver l'ID d'une catégorie.

C'est tout bête, mais j'utilise ce code à tout bout de champs dans mon thème et certains plugins que je développe.

Retrouver l'ID d'une catégorie WordPress

Le code renvoie l'ID d'une catégorie WordPress à partir de son nom, sans pour autant le connaître à l'avance. Très utile pour les pages de tags, de catégorie et d'index.

Le code donne l'ID d'une seule catégorie par article. Si vous avez assigné un article à plusieurs catégories, le code ci-dessous ne vous en donnera qu'un. De toute façon, je vous déconseille d'avoir un article WordPress dans plusieurs catégories afin d'éviter le duplicate content (vive le référencement naturel !).

$category = get_the_category();
$mycat = $category[0]->cat_name;
$mycat2 = get_cat_id($mycat);

Utilisez ensuite la variable $mycat2 comme bon vous semble. Attention, le code est a utiliser dans le loop de WordPress.

L'utilisation de l'ID de catégorie dans WordPress

Ce code peut ensuite être réutilisé dans plusieurs cas, dont voici certains que j'utilise dans le thème de SeoMix :

Afficher l'ID en dur

<?php echo get_cat_name($mycat2);?>

Le lien de la catégorie

<?php get_category_link($mycat2);?>

Le flux RSS de la catégorie

<?php get_category_feed_link('$mycat2', ''); ?>

Sur ce, bon développement à tous sur notre bon vieux WordPress.

Daniel Roch

Expert SEO WordPress - Créateur de SeoMix et SEOKEY - Auteur de nombreux livres et conférencier

12 Commentaires

Pandoon Le 10 août 2010 à 13h13

Pour retrouver l'ID d'une catégorie WordPress +facilement:

Panneau admin => Articles => Catégorie => mettez la souris sur une catégorie (vous pouvez aussi cliquer) et l'ID apparait dans le lien tout à la fin! ;-)

Daniel Roch Le 10 août 2010 à 13h58

Oui, c'est la méthode la plus facile pour connaître l'ID d'une catégorie de WordPress, mais c'est inutilisable pour modifier ou développer un thème ou un plugin pour WP. ;)

Julien - Référenceur SEO Le 11 août 2010 à 11h05

Nikel pour mon petit plugin que je dois réaliser.
J'ai fini de faire le tour de ce blog, bonne chance pour ton blog, pour ma part je reviendrai.

didier Le 30 mars 2011 à 17h59

Merci Daniel, c'est une très bonne astuce...
il me semble qu'il est aussi possible de faire ceci :

$category = get_the_category();
$mycat = $category[0]->cat_ID;

Hernan Le 01 juillet 2011 à 10h24

On doit pouvoir aussi faire ça je pense, corrigez-moi si je me trompe :

foreach((get_the_category()) as $category) { 
    echo $category->cat_ID;
}
Daniel Roch Le 01 juillet 2011 à 11h34

Tu as tout à fait raison. Ta solution fonctionne parfaitement pour récupérer les ID d'un article WordPress. ;)

Jonathan Le 27 juillet 2011 à 17h12

Ca fonctionne nickel si on est sur un single.php par contre pour un category.php, je n'arrive pas à récupérer autre chose que le nom ou la description... Une idée pour récupérer l'ID et le nicename?

L'objectif c'est de pouvoir afficher qqch du style...

img src="img/categories/' . $cat_ID . '-' . $category-nicename .'.png" alt="Nom de la catégorie"

Merci d'avance pour votre aide !

    Daniel Roch Le 28 juillet 2011 à 9h26

    Il existe une solution dans ce cas, fournie par WpRecipes :

    function get_category_id($cat_name){
    	$term = get_term_by('name', $cat_name, 'category');
    	return $term->term_id;}
    $category_ID = get_category_id('Nom de la catégorie');
Jonathan Le 28 juillet 2011 à 10h34

Merci... Du coup, j'ai adapté ce code, voilà ce que ça donne pour ceux que ça intéresse :

Dans functions.php

/* Récupérer ID */
function get_category_id($cat_name){
$term = get_term_by('name', $cat_name, 'category');
return $term->term_id;}
/* Récupérer Nicename */
function get_category_nicename($cat_name){
$term = get_term_by('name', $cat_name, 'category');
return $term->slug;}

Dans category.php

<img class="cat" src="/img/categories/-.png" alt="" />
Ant0 Le 20 août 2011 à 13h07

Bonjour,

Merci pour votre article mais je ne parviens pas à récupérer l'id de la sous-catégorie courante

Donc, j'utilise cette fonction

et j'aimerai bien récupérer l'id de la catégorie courante et l'afficher à la place de 7.

Auriez vous une solution ?

Merci

Thomas Barbéra Le 04 mai 2012 à 17h42

Merci pour l'astuce, ça m'a été bien utile pour pouvoir afficher un contenu personnalisé dans une certaine catégorie ! Pour info, j'ai utilisé la technique à Didier qui marche nikel !

Thomas Barbéra Le 11 mai 2012 à 19h37

Finalement, ça n'allait pas car ça me retournait l'ID de la 1ère catégorie du 1er post. Mon post étant dans plusieurs catégorie, ça ne me retournait pas dans tous les cas la catégorie active.

J'ai trouvé cette astuce là qui fonctionne nikel en revanche :

/* Récupère l'ID de la catégorie courante */
$mycat = get_query_var('cat');

Laisser un commentaire

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