Name der aktuellen Taxonomie (kein Begriff!) Bei einer Post-ID

Ich kann überall Informationen darüber finden, wie man die Bedingungen für einen bestimmten Beitrag bekommt, aber ich brauche nur die Namen der Taxonomien. Ich meine:

Steuer: Taxonomie 1 Begriffe: Term1, Term2, etc

Steuern: Taxonomie2 Begriffe: Begriff1, Begriff2, Begriff3, usw

Mein Post ist als Taxonomy1.term1, Taxonomy2.term3 eingestellt. OK.

Was ich will, ist zu wissen, dass mein Beitrag auf Taxonomy1 und Taxonomy2 ist, NICHT das ist auf Term1 und Term3.

Wie kann ich es tun? (und ich spreche übrigens von benutzerdefinierten Taxonomien und benutzerdefinierten Post-Typen)

Solutions Collecting From Web of "Name der aktuellen Taxonomie (kein Begriff!) Bei einer Post-ID"

$t = get_post_type($post); $taxonomies = get_object_taxonomies($t); 

$ taxonomies enthält die Namen der verschiedenen Taxonomien Ihres Posts.

Ich habe gerade eine undokumentierte function gefunden (in wp-includes / taxonomy.php). Es ist eine Verknüpfung, die get_object_taxonomies () verwendet: get_post_taxonomies ($ post_id). Es gibt die Taxonomy-Namen zurück.

Wie auch immer, ich habe gerade eine andere Symple-function programmiert:

 function get_taxonomies_info($id){ global $wpdb; return $wpdb->get_results($wpdb->prepare(" select tax.taxonomy as taxonomy, group_concat(tr.name) as term_names, group_concat(tr.term_id) as term_ids from " . $wpdb->prefix . "term_taxonomy tax INNER JOIN " . $wpdb->prefix . "term_relationships rel ON tax.term_taxonomy_id =rel.term_taxonomy_id INNER JOIN " . $wpdb->prefix . "terms tr ON tr.term_id = tax.term_id WHERE rel.object_id = %d GROUP BY taxonomy ",$id)); } 

Es wird ein Array von Objekten wie folgt zurückgegeben:

 array(2) { [0]=> object(stdClass)#115 (3) { ["taxonomy"]=> string(21) "taxonomy name" ["term_names"]=> string(16) "term name" ["term_ids"]=> string(1) "4" } [1]=> object(stdClass)#114 (3) { ["taxonomy"]=> string(17) "soluzioni_manuali" ["term_names"]=> string(51) "term name 1,term name 2" ["term_ids"]=> string(3) "2,3" } } 

Für jede Zeile haben Sie also eine Taxonomie, eine durch Kommas getrennte Liste von Begriffen dieser THAT-Taxonomie, eine durch Kommas getrennte Liste mit den Begriffen ids.

Offensichtlich kann man die function leicht ändern, vielleicht durch Hinzufügen einiger anderer Optionen (zum Beispiel ein Filter-Out-Taxonomie-Array).

Ich hoffe es hilft

Erhalten Sie alle Taxonomiebegriffe des Posts, und betrachten Sie dann die taxonomy Posts.

Weitere Informationen finden Sie in den Codekommentaren:

 global $post; // get all the taxonomies registered for the post type $allcustomtaxes = get_taxonomies( array('public'=> true,'_builtin' => false, 'object_type'=> array($post->post_type) ) ); // get the terms assigned to post, in all custom taxonomies $terms = wp_get_object_terms($post->ID, $allcustomtaxes); // get the 'taxonomy' property of terms objects, removing duplicates $belongs = empty($terms) ? array('none'), array_unique(wp_list_pluck($terms, 'taxonomy')); // example usage: echo 'Post ' . $post->title . ' belongs to ' . implode(', ') . $belongs;