Uso corretto di get_the_terms()

12 mar 2016, 18:36:40
Visualizzazioni: 28.7K
Voti: 4

Ho bisogno di stampare tutti i termini associati a un post di tipo personalizzato. Nel template del post ho scritto questo codice:

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

Il ciclo funziona correttamente, ma prima della lista viene stampato anche l'ID. In questo modo:

37
taxonomy01
taxonomy02
taxonomy03

Cosa c'è di sbagliato?

0
Tutte le risposte alla domanda 2
3
12

the_ID() stampa l'ID del post. È necessario utilizzare get_the_ID() che restituisce l'ID del post.

Esempio:

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

Ricorda sempre la convenzione di denominazione di WordPress per i tag dei template. the significa stampare, mentre get significa restituire nella maggior parte dei casi.

12 mar 2016 18:43:13
Commenti

Grazie, non avevo realizzato la differenza.

wav wav
12 mar 2016 18:51:30

Ricorda sempre la convenzione di denominazione di WordPress per i tag dei template. the significa stampare, get significa restituire WordPress non segue sempre queste regole. I tag dei template non utilizzano sempre i prefissi the e get

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

Stavo pensando che la mia affermazione non fosse completamente vera. L'ho modificata :)

Sumit Sumit
12 mar 2016 20:05:27
0

Puoi anche dichiarare una variabile.

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

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