Mostrar el término de taxonomía actual dentro de un tipo de entrada personalizada

1 mar 2013, 13:43:30
Vistas: 102K
Votos: 8

Bueno, esto debería ser bastante simple, sin embargo, no pude encontrar la respuesta en ninguna parte de la web. Todas las respuestas que encontré estaban cerca pero no eran exactamente lo que necesitaba. Lo que necesito es mostrar solo el término actual del tipo de entrada personalizada en el que estoy. ¡no todos los términos, solo uno! (el relevante)

Esto es lo que estoy usando pero muestra TODOS los términos, lo cual no es bueno para mí:

<?php
$taxonomy = 'genre';
$queried_term = get_query_var($taxonomy);
$terms = get_terms($taxonomy, 'slug='.$queried_term);
if ($terms) {
  foreach($terms as $term) {
    echo $term->name;
  }
}
?>

recuerden - Me gustaría mostrarlo en mi plantilla de entrada personalizada individual ¿alguien puede sugerir algo? gracias

0
Todas las respuestas a la pregunta 4
0
17

Vale, así que finalmente encontré lo que necesitaba aquí: ¿Cómo obtener el término actual en mi taxonomía personalizada en WordPress?

la última actualización al final cortesía de @user3208:

<?php   // Obtener términos para el post
 $terms = get_the_terms( $post->ID , 'oil' );
 // Recorrer cada elemento ya que es un array
 if ( $terms != null ){
 foreach( $terms as $term ) {
 // Imprimir el método name desde $term que es un OBJETO
 print $term->slug ;
 // Descartar los otros datos almacenados en el objeto, ya que no son necesarios
 unset($term);
} } ?>

¡Eso resolvió mi problema! Gracias

2 mar 2013 10:11:44
8

Deberías usar wp_get_post_terms en su lugar.

$terms = wp_get_post_terms( $post_id, $taxonomy, $args );

get_terms te dará todos los términos presentes en una taxonomía.

ACTUALIZACIÓN:

global $post;
$terms = wp_get_post_terms( $post->ID, 'genre');
print_r($terms); #muestra la salida
1 mar 2013 14:20:38
Comentarios

Estoy intentando pero no funciona. ¿Tengo que pasar alguna variable a la función? ¿Puedes especificar cómo debería implementarlo en mi código? Gracias

gil hamer gil hamer
1 mar 2013 14:46:08

Si estás dentro del WordPress Loop, puedes usar get_the_ID() en lugar de $post_id. Para $taxonomy, necesitas añadir el nombre de la taxonomía que estás usando. $args no es necesario.

RRikesh RRikesh
1 mar 2013 18:14:06

¡Definitivamente está fuera del loop! Simplemente no logro que funcione... ¿Puedes sugerir cómo implementarlo fuera del loop? Si es necesario, publicaré todo el código. Gracias

gil hamer gil hamer
1 mar 2013 18:28:18

Luego necesitas agregar global $post; y luego usar $post->ID para obtener el ID del post.

RRikesh RRikesh
1 mar 2013 18:32:32

¿Puedes mostrarme un ejemplo usando mi código anterior? No soy tan experto en programación. Te lo agradecería. Gracias

gil hamer gil hamer
1 mar 2013 18:35:59

respuesta actualizada.

RRikesh RRikesh
1 mar 2013 19:12:03

Desafortunadamente no funcionó: 1. Me da un arte

gil hamer gil hamer
1 mar 2013 22:11:25

Lo siento pero no funcionó para mí: 1. me da un error mostrando un array innecesario (probablemente no puedes ignorar el parámetro '$arg'). 2. no cambió el nombre del término cuando mostré una publicación de otro término. ¿Alguna otra solución? Gracias

gil hamer gil hamer
1 mar 2013 23:36:38
Mostrar los 3 comentarios restantes
0

Tomando lo que codificó user3208, he añadido un poco de código que agrega la URL al Término. Espero que le sirva a alguien.

<?php   // Obtener términos para el post
$terms = get_the_terms( $post->ID , 'oil' );
// Recorrer cada elemento ya que es un array
if ( $terms != null ){
foreach( $terms as $term ) {
$term_link = get_term_link( $term, 'oil' );
 // Imprimir el nombre y la URL
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
// Eliminar los otros datos almacenados en el objeto, ya que no son necesarios
unset($term); } } ?>
28 oct 2016 14:50:15
1
<?php echo get_the_term_list( $post->ID, 'yourtaxonomy', '', ', ' ); ?>
10 jul 2017 02:23:02
Comentarios

Las respuestas que solo incluyen código generalmente no son bien vistas sin una explicación. ¿Podrías por favor editar tu respuesta y explicar qué hace esta función y cómo resuelve el problema original, tal vez enlazando al Codex para más información?

Howdy_McGee Howdy_McGee
10 jul 2017 03:27:34