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?

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
}


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'); 

(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>';
  }
}
?>

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.