Come ottenere tutte le tassonomie di un tipo di posta?


46

Come posso ottenere tassonomie di un tipo di post?

Se ho un tipo di post evente devo trovare l'elenco delle tassonomie associate a quel tipo di post. Come li trovo?

Risposte:


36

Ehi ragazzi penso di averlo capito! Dopo aver esaminato un paio di funzioni nel file taxonomy.php in WordPress ho trovato questa funzione get_object_taxonomies();che ha funzionato :)

Ecco la funzione

function get_post_taxonomies($post) {
    // Passing an object
    // Why another var?? $output = 'objects'; // name / objects
    $taxonomies = get_object_taxonomies($post, 'objects');

    /*// Passing a string using get_post_type: return (string) post, page, custom...
    $post_type  = get_post_type($post);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    /*// In the loop with the ID
    $theID      = get_the_ID();
    $post_type  = get_post_type($theID);
    $taxonomies = get_object_taxonomies($post_type, 'objects');*/

    // You can also use the global $post

    // edited to fix previous error $taxonomies
    // edited to force type hinting array
    return (array) $taxonomies; // returning array of taxonomies
}


wow ... bello sapere su get_object_taxonomies (). mi ha solo aiutato a dirottare template_redirect
helgatheviking il

Ciao grazie per questo, ma come ordinarli tramite ID anziché NAME?
dh47,

il modo più semplice sarà semplicemente ordinarli usando a foro foreachloop.
Sisir,

Sì, sto recuperando utilizzando foreach loop ma ricevo l'ordine per nome$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) ); foreach( $taxonomies as $taxonomy ) : // Gets every "category" (term) in this taxonomy to get the respective posts $terms = get_terms( $taxonomy ); ?> <ul class="specials"><?php foreach( $terms as $term ) : ?> <li><h2 ><?php echo $term->name; ?></h2>
dh47

9

get_categories farà il lavoro.

get_categories('taxonomy=taxonomy_name&type=custom_post_type'); 

(Penso che se avessi capito bene la domanda!)
aggiunto il

3
Il fatto è che non ho un nome di tassonomia, è quello che voglio scoprire. Ho solo il nome del tipo di post. Con il nome del tipo di post voglio scoprire tutta la tassonomia ad essa collegata. Grazie comunque!
Sisir,

1

Hai provato qualcosa? qualcosa come questo?

<?php 

$args=array(
  'object_type' => array('event') 
); 

$output = 'names'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    echo '<p>'. $taxonomy. '</p>';
  }
}
?>

1
Ho esaminato la get_taxonomies();funzione sul codice ma ha una documentazione molto scarsa e non avevo idea di come posso passare i tipi di post.
Sisir,

Siamo spiacenti, questo codice restituisce tutte le tassonomie registrate in wordpress.
Sisir,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.