Uso correcto de get_the_terms()

12 mar 2016, 18:36:40
Vistas: 28.7K
Votos: 4

Necesito imprimir todos los términos asociados a una entrada de un tipo de contenido personalizado. En la plantilla de la entrada escribí este código:

<?php foreach (get_the_terms(the_ID(), 'taxonomy') as $cat) : ?>
     <?php echo $cat->name; ?>
<?php endforeach; ?>

El bucle funciona correctamente, pero antes de la lista también se imprime el ID. Como:

37
taxonomy01
taxonomy02
taxonomy03

¿Qué está mal?

0
Todas las respuestas a la pregunta 2
3
12

the_ID() imprime el ID de la publicación. Necesitas usar get_the_ID() que devuelve el ID de la publicación.

Ejemplo:

foreach (get_the_terms(get_the_ID(), 'taxonomy') as $cat) {
   echo $cat->name;
}

Recuerda siempre la convención de nombres de WordPress para las etiquetas de plantilla. the significa imprimir y get significa devolver en la mayoría de los casos.

12 mar 2016 18:43:13
Comentarios

Gracias, no me había dado cuenta de la diferencia.

wav wav
12 mar 2016 18:51:30

Siempre recuerda la convención de nomenclatura de WordPress para las etiquetas de plantilla. the que significa imprimir get que significa retornar WordPress no siempre sigue esto. Las etiquetas de plantilla no siempre usan los prefijos the y get

Pieter Goosen Pieter Goosen
12 mar 2016 20:01:08

Estaba pensando que mi declaración no era 100% cierta. La edité :)

Sumit Sumit
12 mar 2016 20:05:27
0

También puedes declarar una variable.

$taxonomy = get_the_terms( get_the_ID(), 'taxonomy' );

foreach ( $taxonomy as $tax ) {
   echo esc_html( $tax->name ); 
}
16 oct 2020 00:32:51