Geben Sie nur den benutzerdefinierten Unterbegriff für den benutzerdefinierten Posttyp zurück

Ich habe eine benutzerdefinierte function erstellt, die den benutzerdefinierten Taxonomiebegriff für eine Liste von Posts in einer Abfrage abruft und sowohl den Namen als auch den Link zurückgibt. Darüber hinaus schließt es auch das Auflisten eines Begriffs aus, wenn ich die Begriffs-ID (ich habe einen speziellen Begriff, den ich nicht anzeigen möchte, den ich als Schleifen-Hook verwende) verwende.

Dies wird durch diese function erreicht

function my_get_the_term_list( $id = 0, $taxonomy, $before = '', $sep = '', $after = '', $exclude = array() ) { $terms = get_the_terms( $id, $taxonomy ); if ( is_wp_error( $terms ) ) return $terms; if ( empty( $terms ) ) return false; foreach ( $terms as $term ) { if(!in_array($term->term_id,$exclude)) { $link = get_term_link( $term, $taxonomy ); if ( is_wp_error( $link ) ) return $link; $term_links[] = ''; } } $term_links = apply_filters( "term_links-$taxonomy", $term_links ); return $before . join( $sep, $term_links ) . $after; } 

Ich zeige es dann mit dieser Linie an

 ID, 'sports_category', '', ' ', '', array(3623) ); ?> 

Alles gut und gut.

Jetzt gehe ich tiefer in meinen Seitenbaum und möchte den / die Begriff (e) des aktuellen Posts noch einmal abrufen, aber jetzt (wie ich auf der Archivseite für den Begriff in der obigen Erklärung bin) möchte ich nur den Sub- Begriff / s und nicht den übergeordneten Begriff anzeigen. Ich habe versucht, das oben beschriebene zu ändern, aber ich kann nicht scheinen, Dinge auseinander zu ziehen.

Die Beispiele, die ich an anderer Stelle gesehen habe, befassen sich nicht mit benutzerdefinierten Begriffen, zusätzlich möchte ich sie in function bringen, so dass ich einige Parameter wie oben festlegen kann.

Dies ist mein letzter Versuch

 function my_get_the_children( $id, $taxonomy, $before = '', $sep = '', $after = '', $exclude = array() ) { $terms = get_term_children( $id, $taxonomy ); if ( is_wp_error( $terms ) ) return $terms; if ( empty( $terms ) ) return false; foreach ( $terms as $term ) { if(!in_array($term->term_id,$exclude)) { $link = get_term_link( $term->name, $taxonomy ); if ( is_wp_error( $link ) ) return $link; $term_links[] = ''; } } $term_links = apply_filters( "term_links-$taxonomy", $term_links ); return $before . join( $sep, $term_links ) . $after; } 

Solutions Collecting From Web of "Geben Sie nur den benutzerdefinierten Unterbegriff für den benutzerdefinierten Posttyp zurück"

Hier ist eine vollständige Anleitung basierend auf dem $wp_query Objekt:

Die Taxonomie

Zuerst möchten Sie vielleicht wissen, in welcher Taxonomie Sie sind, wie der Name lautet und alle verfügbaren Daten aus dem Objekt abrufen.

 // Taxonomy name $taxonomy = get_query_var( 'taxonomy' ); // Taxonomy object get_taxonomy( $taxonomy ); // Taxonomy name get_taxonomy( $taxonomy )->label; 

Das Taxon / Term

Dann möchten Sie vielleicht etwas mit dem aktuellen Taxon / Begriff machen.

 // The current taxon/term slug $term_slug = get_query_var( 'term' ); // The complete current taxon/term object $term = get_term_by( 'slug', $term_slug, $taxonomy ); 

Die Vorfahren / Eltern

Die Vorfahren / Eltern zu bekommen, bietet viele Möglichkeiten. Zum Beispiel für eine Breadcrumb-Trail-Navigation oder Post-Metadaten oder einfach um sie aus der Liste der angezeigten Taxonomien herauszufiltern.

 // Ancestors/Parents $ancestors = get_ancestors( $term->term_id ,$taxonomy ); foreach ( $ancestors as $ancestor ) { // The currently looped parents/ancestors object $ancestor_obj = get_term( $ancestor, $taxonomy ); // The currently looped parents/ancestors name $ancestor_name = $ancestor_obj->name; // Link to the parent/ancestor taxon/term archive $ancestor_link = get_term_link( $ancestor, $taxonomy ) } 

Ist es eine hierarchische Taxonomie?

Sie müssen immer zwischen hierarchischen (kategorienähnlichen) und flachen (Post-Tags wie) Taxonomien unterscheiden.

 // Are we in a hierarchical taxonomy? if ( is_taxonomy_hierarchical( $taxonomy ) ) { // Do stuff } 

Haben wir Kinder, meine Liebe?

Manchmal sind Sie mitten in einer wirklich tief geschachtelten hierarchischen Taxonomie. Dann macht es auch Sinn, mit den Kindern umzugehen.

 // Based on the above retrieved data $children = get_term_children( $term->term_id ,$taxonomy ); foreach ( $children as $child ) { // The currently looped child object $child_obj = get_term( $child, $taxonomy ); // The currently looped child name $child_name = $child_obj->name; // Link to the child taxon/term archive $child_link = get_term_link( $child, $taxonomy ); }