Wie bekomme ich alle Taxonomien eines Beitragstyps?

45

Wie kann ich Taxonomien eines Post-Typs erhalten?

Wenn ich einen Beitragstyp habe eventund die Liste der Taxonomien herausfinden muss, die diesem Beitragstyp beigefügt sind. Wie finde ich sie?

Sisir
quelle

Antworten:

36

Hey Leute, ich glaube ich habe es verstanden! Nachdem ich mir einige Funktionen in der taxonomy.php-Datei in WordPress angesehen habe, habe ich diese Funktion gefunden, get_object_taxonomies();die den Trick gemacht hat :)

Hier ist die Funktion

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
}
Sisir
quelle
2
Weitere Informationen finden Sie hier: codex.wordpress.org/Function_Reference/get_object_taxonomies
Manny Fleurmond
wow ... gut zu wissen über get_object_taxonomies (). Es hat mir nur geholfen, template_redirect
helgatheviking 10.11.11
Hallo danke dafür, aber wie kann ich sie nach ID anstelle von NAME bestellen?
dh47
Am einfachsten ist es, sie mit einem foroder einer foreachSchleife zu sortieren .
Sisir
Ja, ich rufe mit foreach loop ab, $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>
erhalte
9

get_categories erledigt den Job.

get_categories('taxonomy=taxonomy_name&type=custom_post_type'); 
hinzugefügtschön
quelle
(Ich denke, wenn ich die Frage richtig verstanden habe!)
hinzugefügt schönen
3
Die Sache ist, dass ich keinen Taxonomienamen habe, das ist es, was ich herausfinden möchte. Ich habe nur den Namen des Beitragstyps. Anhand des Posttypnamens möchte ich alle Taxonomien herausfinden, die damit verbunden sind. Danke trotzdem!
Sisir
1

Hast du irgendwas ausprobiert? etwas wie das?

<?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>';
  }
}
?>
Reigel
quelle
1
Sah get_taxonomies();Funktion auf Codex, aber es hat sehr schlechte Dokumentation und war keine Ahnung, wie ich die Post-Typen übergeben kann.
Sisir
Dieser Code gibt leider alle registrierten Taxonomien in WordPress zurück.
Sisir