Utilizarea corectă a funcției get_the_terms()

12 mar. 2016, 18:36:40
Vizualizări: 28.7K
Voturi: 4

Am nevoie să afișez toți termenii asociați unui post de tip custom post type. În template-ul postării am scris acest cod:

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

Loop-ul funcționează corect, dar înainte de listă este afișat și ID-ul. Astfel:

37
taxonomy01
taxonomy02
taxonomy03

Ce este greșit?

0
Toate răspunsurile la întrebare 2
3
12

the_ID() afișează ID-ul articolului. Pentru a obține ID-ul articolului, trebuie să folosiți get_the_ID() care returnează ID-ul.

Exemplu:

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

Țineți minte întotdeauna convenția de denumire din WordPress pentru tag-urile de șablon. the înseamnă afișare, iar get înseamnă returnare în majoritatea cazurilor.

12 mar. 2016 18:43:13
Comentarii

Mulțumesc, nu mi-am dat seama de diferență.

wav wav
12 mar. 2016 18:51:30

Ține minte întotdeauna convenția de denumire din WordPress pentru tag-urile de șablon. the înseamnă afișare, get înseamnă returnare WordPress nu respectă întotdeauna aceste reguli. Tag-urile de șablon nu folosesc întotdeauna prefixele the și get

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

Mă gândeam că afirmația mea nu este 100% adevărată. Am editat-o :)

Sumit Sumit
12 mar. 2016 20:05:27
0

De asemenea, poți declara o variabilă.

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

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