Dans ma boucle de page d'accueil, j'ai quelque chose qui montrera dans quelle catégorie se trouve le message. Il va dire quelque chose comme: "Posté il y a 4 heures dans Sports par ...". Cependant, lorsqu'il n'y a pas de catégorie définie, la catégorie sera (évidemment) omise et il suffira de dire "Posté il y a 4 heures dans par ...". Ma question est la suivante: comment puis-je vérifier si un message appartient à une catégorie dans WordPress?.
Je sais que la fonction in_category()
existe, mais je voudrais éviter de devoir taper toutes les catégories, au cas où elles changeraient, ou peu importe.
Merci!
Vous pouvez utiliser is_object_in_term()
. Malgré son nom, il peut également vérifier la correspondance taxonomique si les termes sont omis.
is_object_in_term( get_the_ID(), 'category' );
Au lieu d'utiliser get_category()
ou ce que vous voulez, directement avec get_the_category()
, vous obtiendrez simplement un tableau des catégories. Vous pouvez ensuite parcourir ces éléments et vérifier s'ils sont vides () ou non.
Peut-être quelque chose comme:
$categories = get_the_category( $post->ID );
if( is_array(categories) && count($categories) > 0 ) {
foreach( $categories as $category ) {
$categories_string .= $category . ", ";
}
$categories_string = rtrim(", ", $categories_string);
}
if( !empty( $categories_string ) ) {
echo "Posted 4 hours ago in {$categories_string} by ...";
} else {
echo "Posted 4 hours ago by ...";
}
* non testé
utilisez has_category()
wp 3.1+ requis si