Mostrar taxonomía de categoría para un tipo de entrada personalizado

24 jul 2014, 13:20:07
Vistas: 15.3K
Votos: 1

Tengo un tipo de entrada personalizado (custom post type) y una taxonomía que permite al usuario seleccionar en qué categoría se encuentra la entrada.

Aquí está mi taxonomía personalizada:

add_action( 'init', 'create_talcat_taxonomy', 0);
function create_Talcat_taxonomy()
{
    register_taxonomy ( 'Talcat', 'artist', array( 'hierarchical' =>
    true, 'label' => 'Categorías', 'query_var' => true, 'rewrite' => true )
);
}

En mi página de inicio estoy haciendo una consulta para post_type=artist, lo cual funciona bien y muestra mis entradas de artistas. Sin embargo, ¿cómo puedo imprimir/mostrar el nombre de la categoría a la que pertenece cada entrada y luego enlazar a esa página de categoría?

0
Todas las respuestas a la pregunta 2
2

He encontrado una forma limpia y sencilla de imprimir el término de taxonomía asignado a la entrada con lo siguiente:

<?php the_terms( $post->ID, 'NOMBRE DE TAXONOMÍA', ' ', ' / ' ); ?>

El uso de the_terms recupera los términos asociados con el/los objeto(s) dado(s), en las taxonomías proporcionadas.

Aquí hay un enlace al codex con ejemplos y más detalles.

24 jul 2014 14:23:32
Comentarios

Desafortunadamente, tengo que esperar 2 días hasta que pueda aceptarlo.

probablybest probablybest
24 jul 2014 16:10:27

No hay problema, no olvides volver en dos días. Desafortunadamente así funciona el sistema.

Pieter Goosen Pieter Goosen
24 jul 2014 16:15:32
2

Creo que estás hablando de términos, no de categorías. Puedes usar wp_list_categories para recuperar y mostrar los términos a los que pertenece una entrada.

Aquí tienes un ejemplo funcional del codex. Recuerda que la variable $taxonomy se puede cambiar a category o cualquier taxonomía personalizada

<?php
$taxonomy = 'NOMBRE DE TU TAXONOMÍA';

// obtener los IDs de términos asignados a la entrada.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
// separador entre enlaces
$separator = ', ';

if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {

   $term_ids = implode( ',' , $post_terms );
   $terms = wp_list_categories( 'title_li=&style=none&echo=0&taxonomy=' . $taxonomy . '&include=' . $term_ids );
   $terms = rtrim( trim( str_replace( '<br />',  $separator, $terms ) ), $separator );

    // mostrar categorías de la entrada
 echo  $terms;
}
?>

Solo un consejo, no uses letras mayúsculas en el nombre de tu taxonomía al registrarla. Suele causar problemas la mayoría de las veces.

24 jul 2014 14:03:33
Comentarios

Esto causa un error de sintaxis, unexpected '>' en la línea que dice &post_terms.

probablybest probablybest
24 jul 2014 14:16:52

Lo siento, tienes razón sobre el error de sintaxis. Publiqué eso desde mi teléfono y por alguna razón rompió una de las flechas simples. Corregido

Pieter Goosen Pieter Goosen
24 jul 2014 18:56:37