Come ottenere tutte le tassonomie di un tipo di post?
Come posso ottenere le tassonomie di un tipo di post?
Se ho un tipo di post event
e ho bisogno di scoprire l'elenco delle tassonomie che sono collegate a quel tipo di post. Come posso trovarle?
Credo di aver capito! Dopo aver esaminato alcune funzioni nel file taxonomy.php di WordPress ho trovato la funzione get_object_taxonomies();
che ha risolto il problema :)

Vedi questo per maggiori informazioni: http://codex.wordpress.org/Function_Reference/get_object_taxonomies

wow... buono a sapersi riguardo get_object_taxonomies(). Mi ha appena aiutato a dirottare template_redirect

Sì, sto recuperando usando un ciclo foreach ma li ottengo ordinati per nome `$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) :
// Ottiene ogni "categoria" (termine) in questa tassonomia per ottenere i post corrispondenti
$terms = get_terms( $taxonomy ); ?>
<ul class="specials"><?php foreach( $terms as $term ) : ?>
<li><h2 ><?php echo $term->name; ?></h2>`

@dh47 Sono in ritardo su questa discussione, ma se ti stai ancora chiedendo, penso che avresti bisogno di fare due cicli foreach
: uno per ordinarli e uno per visualizzarli. Potresti anche passarli a usort
prima del tuo ciclo foreach
per ordinarli come preferisci.

Ecco una one-liner per mostrare tutti i termini per un dato oggetto $post
(qualsiasi tipo di post): array_map(function ($taxonomy) use($post) { return wp_get_post_terms($post->ID, $taxonomy); }, get_object_taxonomies($post))
// restituisce un array di tutti i $terms sotto qualsiasi tassonomia

get_categories farà al caso tuo.
get_categories('taxonomy=nome_tassonomia&type=tipo_post_personalizzato');

Mi scuso per aver riportato alla luce un vecchio post, ma mi sono imbattuto in questo problema mentre cercavo una risposta per il mio caso d'uso.
Volevo recuperare tutte le tassonomie disponibili per un tipo di post, e anche recuperare tutti i termini disponibili per ogni tassonomia.
Ringrazio Nick B per avermi indirizzato nella giusta direzione con la sua risposta: https://wordpress.stackexchange.com/a/357448/198353
// ottieni una lista delle tassonomie disponibili per un tipo di post
$taxonomies = get_taxonomies(['object_type' => ['your_post_type']]);
$taxonomyTerms = [];
// scorri tutte le tassonomie
foreach ($taxonomies as $taxonomy)
{
// recupera tutti i termini disponibili, inclusi quelli non ancora utilizzati
$terms = get_terms(['taxonomy' => $taxonomy, 'hide_empty' => false]);
// assicurati che $terms sia un array, poiché potrebbe essere un intero (conteggio) o un WP_Error
$hasTerms = is_array($terms) && $terms;
if($hasTerms)
{
$taxonomyTerms[$taxonomy] = $terms;
}
}

Utilizza get_object_taxonomies
(https://developer.wordpress.org/reference/functions/get_object_taxonomies/), che accetta come parametro il nome del tuo custom post type oppure un oggetto post:
$taxonomies = get_object_taxonomies('custom_post_type');
$taxonomies = get_object_taxonomies($custom_post_object);
get_taxonomies()
non restituirà alcuna tassonomia utilizzata da più tipi di post (https://core.trac.wordpress.org/ticket/27918).

Hai provato qualcosa? Qualcosa come questo?
<?php
$args=array(
'object_type' => array('event')
);
$output = 'names'; // o objects
$operator = 'and'; // 'and' o 'or'
$taxonomies=get_taxonomies($args,$output,$operator);
if ($taxonomies) {
foreach ($taxonomies as $taxonomy ) {
echo '<p>'. $taxonomy. '</p>';
}
}
?>

$taxonomies = get_taxonomies( [ 'object_type' => [ 'custom_post_type' ] ] );
Ho mantenuto il codice originale poiché:
1. La funzione `get_taxonomies()` è un core function di WordPress che deve rimanere in inglese
2. Il parametro 'object_type' è una chiave di array che non va tradotta
3. 'custom_post_type' è un placeholder che gli sviluppatori sostituiranno con il loro actual post type
Il codice recupera tutte le tassonomie registrate per un specifico custom post type in WordPress.

get_post_taxonomies()
https://developer.wordpress.org/reference/functions/get_post_taxonomies/
Questo ha funzionato per me.
