web-dev-qa-db-fra.com

Vérifier si une page a un terme associé?

Je cherche un moyen de faire de la logique conditionnelle sur des termes associés à un post.

J'ai essentiellement créé ma propre taxonomie personnalisée pour les "groupes d'âge" et créé trois termes pour ces groupes. Enfants, Adolescents, Adultes ... Dans la zone d'administration, je souhaite vérifier les termes qui s'appliquent à un article spécifique et sur la face avant du site dans mon modèle de page. Je souhaite afficher une image spécifique si le terme était associé à l'article. ou un autre si le terme n'était pas associé.

Quelqu'un a-t-il une solution à cela ... Je pensais que l'exemple de code suivant fonctionnerait, mais cela ne fonctionne pas. (BTW - ce que je fais ici est de changer l'image basée sur css).

<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
   echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
2
NetConstructor.com

Bonjour @ NetConstructor:

La première chose, en supposant quevotre logique fonctionne, vous pouvez utiliser l'opérateur ternaire pour simplifier votre exemple:

<li id="kids-<?php echo is_term('Kids','age_groups') 
   ? 'on' : 'off'; ?>">Kids Programs</li>

Le problème semble être que is_term() est utilisé pour vérifier si un terme existe, et non s'il est associé à une publication particulière. Je pense que ce que vous voulez vraiment, c'est is_object_in_term() (ce qui suppose que vous êtes dans la boucle , c'est-à-dire que $post a une valeur appropriée) :

<li id="kids-<?php echo is_object_in_term($post->ID,'age_groups','Kids') 
   ? 'on' : 'off'; ?>">Kids Programs</li>

P.S. En supposant que is_term() était la bonne fonction, elle est en fait obsolète ; term_exists() remplace is_term(); juste FYI.

6
MikeSchinkel