Cum să afișezi categoria unei taxonomii pentru un post type personalizat | WordPress

24 iul. 2014, 13:20:07
Vizualizări: 15.3K
Voturi: 1

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?

0
Toate răspunsurile la întrebare 2
2

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.

24 iul. 2014 14:23:32
Comentarii

Din păcate, trebuie să aștept 2 zile până îl pot accepta.

probablybest probablybest
24 iul. 2014 16:10:27

Nicio problemă, nu uita să revii peste două zile. Din păcate, așa funcționează sistemul

Pieter Goosen Pieter Goosen
24 iul. 2014 16:15:32
2

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.

24 iul. 2014 14:03:33
Comentarii

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

probablybest probablybest
24 iul. 2014 14:16:52

Scuze, ai dreptate în legătură cu eroarea de sintaxă. Am postat asta de pe telefon și din anumite motive a stricat una dintre săgețile simple. Am corectat-o

Pieter Goosen Pieter Goosen
24 iul. 2014 18:56:37