Afișarea termenului taxonomiei curente în cadrul unui tip de postare personalizat

1 mar. 2013, 13:43:30
Vizualizări: 102K
Voturi: 8

Ei bine, ar trebui să fie destul de simplu, totuși nu am putut găsi răspunsul nicăieri pe internet. Toate răspunsurile pe care le-am găsit erau apropiate, dar nu exact ceea ce aveam nevoie. Ceea ce îmi trebuie este să afișez doar termenul curent al unui tip de postare personalizat în care mă aflu. nu toate termenele, doar unul! (cel relevant)

Iată ce folosesc momentan, dar afișează TOATE termenele, ceea ce nu este bine pentru mine:

<?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;
  }
}
?>

țineți minte - aș dori să îl afișez în șablonul meu pentru postări de tip single poate cineva să sugereze? mulțumesc

0
Toate răspunsurile la întrebare 4
0
17

Ok, deci în sfârșit am găsit ce aveam nevoie aici: Cum să obțin termenul curent din taxonomia mea personalizată în WordPress?

ultima actualizare de la @user3208:

<?php  
// Obține termenii pentru postare
$terms = get_the_terms( $post->ID , 'oil' );
// Parcurge fiecare element deoarece este un array
if ( $terms != null ){
    foreach( $terms as $term ) {
    // Afișează metoda name din $term care este un OBIECT
    print $term->slug ;
    // Elimină celelalte date stocate în obiect, deoarece nu sunt necesare
    unset($term);
} } ?>

Asta a rezolvat problema mea! Mulțumesc

2 mar. 2013 10:11:44
8

Ar trebui să folosești wp_get_post_terms în loc.

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

get_terms va returna toți termenii prezenți într-o taxonomie.

ACTUALIZARE:

global $post;
$terms = wp_get_post_terms( $post->ID, 'genre');
print_r($terms); #afisează rezultatul
1 mar. 2013 14:20:38
Comentarii

Încerc dar nu funcționează. Trebuie să transmit vreo variabilă în funcție? Poți să specifici cum ar trebui să o implementez în codul meu? Mulțumesc

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

Dacă ești în WordPress Loop, poți folosi get_the_ID() în loc de $post_id. Pentru $taxonomy, trebuie să adaugi numele taxonomiei pe care o folosești. $args nu este necesar.

RRikesh RRikesh
1 mar. 2013 18:14:06

Este cu siguranță în afara loop-ului! Pur și simplu nu reușesc să o fac să funcționeze.. Poți să sugerezi cum să o implementez în afara loop-ului? Dacă este necesar, voi posta întregul cod. Mulțumesc

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

Apoi trebuie să adaugi global $post; și apoi să folosești $post->ID pentru a obține ID-ul postului.

RRikesh RRikesh
1 mar. 2013 18:32:32

poți să-mi arăți un exemplu folosind codul meu de mai sus? Nu sunt atât de avansat în programare. Aș aprecia. Mulțumesc

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

am actualizat răspunsul.

RRikesh RRikesh
1 mar. 2013 19:12:03

Din păcate, nu a funcționat: 1. Îmi afișează o artă

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

Îmi pare rău, dar nu a funcționat pentru mine: 1. Îmi afișează o eroare cu un array inutil (probabil nu poți ignora parametrul '$arg'). 2. Nu a schimbat numele termenului când am afișat un articol dintr-un alt termen. Există vreo altă soluție? Mulțumesc

gil hamer gil hamer
1 mar. 2013 23:36:38
Arată celelalte 3 comentarii
0

Pornind de la codul scris de user3208, am adăugat un pic de cod care include URL-ul pentru Termen. Sper că asta va ajuta pe cineva.

<?php   // Obține termenii pentru postare
$terms = get_the_terms( $post->ID , 'oil' );
// Parcurge fiecare element din array
if ( $terms != null ){
foreach( $terms as $term ) {
$term_link = get_term_link( $term, 'oil' );
 // Afișează numele și URL-ul
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
// Elimină celelalte date stocate în obiect, deoarece nu sunt necesare
unset($term); } } ?>
28 oct. 2016 14:50:15
1
<?php echo get_the_term_list( $post->ID, 'yourtaxonomy', '', ', ' ); ?>
10 iul. 2017 02:23:02
Comentarii

Răspunsurile care conțin doar cod sunt de obicei dezaprobate fără o explicație. Poți, te rog, să editezi răspunsul tău și să explici ce face această funcție și cum rezolvă ea problema inițială, eventual cu un link către Codex pentru mai multe informații?

Howdy_McGee Howdy_McGee
10 iul. 2017 03:27:34