¿Comprobando si una página tiene un término asociado?

2

Estoy buscando una manera de hacer alguna lógica condicional en términos asociados con una publicación.

Esencialmente, creé mi propia taxonomía personalizada para "grupos de edad" y he creado tres términos para ellos. Niños, adolescentes, adultos ... En el área de administración, quiero comprobar los términos que se aplican a una publicación específica y en la interfaz del sitio dentro de mi plantilla de página Quiero mostrar una imagen específica si el término estaba asociado a la publicación o una diferente si el término no estaba asociado.

¿Alguien tiene una solución para esto? Pensé que el siguiente ejemplo de código funcionaría pero no lo hace. (Por cierto, lo que estoy haciendo aquí es cambiar la imagen basada en css).

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

1 respuesta

6

Hola @NetConstructor:

Primero, asumiendo que su lógica funcionó, puede usar el operador ternario para simplificar su ejemplo:

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

El problema parece ser que is_term() se usa para verificar si existe un término, no si está asociado con una publicación en particular. Creo que lo que realmente quieres es is_object_in_term() (que asume que estás en The Loop , es decir, que $post tiene un valor apropiado):

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

P.S. Suponiendo que is_term() ha sido la función correcta, en realidad ha sido en desuso ; term_exists() reemplaza a is_term() ; sólo fyi.

    
respondido por el MikeSchinkel 25.10.2010 - 05:45

Lea otras preguntas en las etiquetas