Cum să afișezi categoria unei taxonomii pentru un post type personalizat | WordPress
Am un post type personalizat și o taxonomie care permite utilizatorului să selecteze în ce categorie se încadrează postul.
Iată taxonomia mea personalizată:
add_action( 'init', 'create_talcat_taxonomy', 0);
function create_Talcat_taxonomy()
{
register_taxonomy ( 'Talcat', 'artist', array( 'hierarchical' =>
true, 'label' => 'Categorii', 'query_var' => true, 'rewrite' => true )
);
}
Pe pagina mea principală interoghez post_type=artist, ceea ce funcționează bine și afișează postările mele de artist. Dar cum pot afișa/printa numele categoriei căreia îi aparține postul și apoi să creez un link către pagina acelei categorii?

Am găsit o metodă curată și simplă pentru a afișa termenii de taxonomie asociați unui articol, folosind următorul cod:
<?php the_terms( $post->ID, 'NUMELE TAXONOMIEI', ' ', ' / ' ); ?>
Funcția the_terms()
returnează termenii asociați obiectului/obiectelor specificate, în taxonomiile indicate.
Aici este un link către codex cu exemple și detalii suplimentare.

Cred că vorbești despre termeni, nu categorii. Poți folosi wp_list_categories
pentru a obține și afișa termenii cărora le aparține un articol.
Iată un exemplu funcțional din codex. Amintește-ți că variabila $taxonomy
poate fi schimbată în category
sau orice taxonomie personalizată
<?php
$taxonomy = 'NUMELE TAXONOMIEI TALE';
// obține ID-urile termenilor asociați articolului.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
// separator între linkuri
$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 );
// afișează categoriile articolului
echo $terms;
}
?>
Doar un sfat, nu folosi litere mari în numele taxonomiei când o înregistrezi. Acest lucru duce de cele mai multe ori la probleme.

Acest lucru generează o eroare de sintaxă, neașteptat '>' pe linia care conține &post_terms.
