Ottieni i nomi delle tassonomie tramite l'ID del post

22 set 2014, 09:23:06
Visualizzazioni: 88.6K
Voti: 8

Sto cercando di creare una pagina singola dove visualizzare alcuni post su una pagina. Finora tutto bene. Funziona tutto. Ora visualizzo i post in un ciclo foreach dove verifico se sono collegati alla pagina.

Quello di cui ho bisogno è qualcosa come wp_get_post_terms($post->ID); ma non funziona. Ci sono delle custom registered_taxonomy (tassonomie personalizzate registrate).

Quindi come posso ottenere tutti i taxonomy names (nomi delle tassonomie) tramite $post->ID?

1
Commenti

Quindi, non hai bisogno di ottenere una lista di termini, ma una lista delle tassonomie a cui questi termini appartengono e che sono associate al post?

Pieter Goosen Pieter Goosen
22 set 2014 10:03:00
Tutte le risposte alla domanda 4
2
10

Oh, grazie per i consigli e l'aiuto (Robert + Peter). Il termine mi ha confuso :) Questo ha funzionato per me:

// Ottiene tutte le tassonomie
$taxonomies = get_taxonomies('', 'names');
// Recupera i termini del post per tutte le tassonomie, restituendo solo i nomi
wp_get_post_terms($post->ID, $taxonomies, array("fields" => "names"));
22 set 2014 10:09:37
Commenti

Dovresti dare un'occhiata alla mia risposta qui riguardo alle tassonomie. Questo dovrebbe aiutarti a capire quale è quale. Ricordati di accettare la tua stessa risposta

Pieter Goosen Pieter Goosen
22 set 2014 10:11:52

@PieterGoosen grazie per il tuo commento e il link a quella risposta!

caramba caramba
22 set 2014 10:14:19
0

Per qualsiasi tipo di post personalizzato puoi facilmente ottenere la lista delle tassonomie del post corrente. Copia e incolla il seguente codice:

<?php if(have_posts()) : the_post();  
    $post_type = get_post_type(get_the_ID());   
    $taxonomies = get_object_taxonomies($post_type);   
    $taxonomy_names = wp_get_object_terms(get_the_ID(), $taxonomies,  array("fields" => "names")); 
    if(!empty($taxonomy_names)) :
       foreach($taxonomy_names as $tax_name) : ?>              
          <p><?php echo $tax_name; ?> </p>
       <?php endforeach;
    endif;
endif;  ?>   
27 nov 2019 06:50:37
4

Prova get_the_term_list

<?php echo get_the_term_list( $post->ID, 'taxonomy', '', ', ' ); ?>

Puoi usare questo all'interno del loop. Inoltre, sostituisci 'taxonomy' nel codice sopra con il tuo termine.

22 set 2014 09:30:31
Commenti

restituisce un errore: object(WP_Error)#2386 (2) { ["errors":"WP_Error":private]=> array(1) { ["invalid_taxonomy"]=>...

caramba caramba
22 set 2014 09:35:25

Dovrai modificare Name of the taxonomy nel codice sopra.

Robert hue Robert hue
22 set 2014 09:36:24

Ci sono diversi nomi di tassonomie, ed è quello che sto cercando di capire quali siano i loro nomi...

caramba caramba
22 set 2014 09:38:02

Ottima soluzione! Semplice e pulita!

Himechi90 Himechi90
4 set 2020 06:52:29
0
// Ottieni la lista dei termini tassonomici associati al post
$term_list = get_the_terms($post->ID, 'your_taxonomy');
$types = '';

// Cicla attraverso ogni termine e costruisci una stringa separata da virgole
foreach($term_list as $term_single) {
     $types .= ucfirst($term_single->slug).', ';
}

// Rimuove l'ultima virgola e spazio dalla stringa
$typesz = rtrim($types, ', ');

// Mostra i termini formattati
echo $typesz;
26 lug 2019 21:22:04