Vérifier si un Article appartient à un Terme de Taxonomie

Vérifier si un Article WordPress appartient à un Terme de Taxonomie
WordPress Lecture 3 minutes • 17 février 2021

Voici une chose à savoir lorsqu'on travaille avec des types de publication personnalisés (CPT) et des taxonomies personnalisées.
Normalement, pour vérifier si un article WordPress classique appartient à une catégorie spécifique, la fonction WordPress à utiliser est in_category ().
Mais cela ne fonctionne pas avec les types de publication personnalisés (CPT). Pour vérifier si un CPT appartient à un terme spécifique dans une taxonomie personnalisée, utilisez plutôt has_term ().

Vérifier qu'un article WordPress appartient à une catégorie en particulier

Pour vérifier si l'article appartient à une catégorie spécifique, utilisez in_category (). Par exemple, dans le modèle single.php de votre thème, vous pouvez le faire :

if (in_category(1)) { 
// article dans la catégorie ayant l'ID = 1 
}

Ici, nous vérifions si l'article appartient à la catégorie ayant l'ID = 1. Vous pouvez le changer en n'importe quel ID de catégorie, nom ou slug.
Il est aussi possible d'indiquer plusieurs catégories.

Voici un exemple où plusieurs catégories sont vérifiées :

if (in_category('croissant')) { 
// l'article appartient à la catégorie "croissant" 
} elseif (in_category(array('the', 'cafe'))) { 
// l'article appartient à la catégorie "thé" ou "café" 
} else { 
// l'article n'appartient à aucune des catégories citées précédemment
}

Notez l'utilisation d'un array dans la condition elseif. Vous pouvez spécifier autant de catégories que nécessaire à l'aide d'un array d'ID de catégorie, de noms ou de slugs.

Vérifier qu'un CPT appartient à un terme d'une taxonomie

Nous voici au cœur de ce tutoriel, comment vérifier si le CPT appartient à un terme spécifique dans une taxonomie personnalisée ?
Par exemple, si nous avons une taxonomie nommée loisirs et que nous voulons vérifier si le CPT appartient au terme basketball, nous pouvons le faire :

if (has_term('basketball', 'loisirs')) { 
// le cpt appartient à "basketball" dans la taxonomie "loisirs" 
}

Lors de l'appel de has_term (), le premier paramètre est le nom du terme et le second paramètre est le nom de la taxonomie.

Pour vérifier plusieurs termes, vous pouvez utiliser un array d'ID de terme, de noms ou de slugs. Par exemple :

if (has_term(array('basketball', 'karate', 'natation'), 'loisirs')) {
// les cpt appartenant à "basketball", "karate", ou "natation" dans la taxonomie "loisirs" 
}

Ainsi, cet exemple vérifiera si le CPT actuel appartient à "basketball", "karate" ou "natation" dans la taxonomie "loisir".

Bonus : Vérifier qu'un CPT appartient à n'importe quel terme d'une taxonomie

if (has_term('', 'loisirs')) { 
// le cpt appartient à n'importe quel terme dans la taxonomie "loisirs"
}

Ici, nous vérifions si le CPT appartient à un des termes de la taxonomie "loisirs", peu importe lequel.
À vous de jouer !

Mémo pour résumer :

Laisser un commentaire

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