Geben Sie einzelne nachgeordnete benutzerdefinierte Taxonomie-Unterbegriffe aus

Ich versuche, Links zu benutzerdefinierten Taxonomien auszugeben, die einem einzelnen Post auf einer einzigen Post-Seite zugeordnet sind. Ich habe anderes versucht, aber Fehler bekommen. Dies ist das nächste, was ich bekommen kann. Es muss nur die Terme für den aktuellen Post finden, anstatt alle Terme einer Taxonomie auszugeben.

<?php $term_id = 6; $taxonomy_name = 'categories'; $termchildren = get_term_children( $term_id, $taxonomy_name ); foreach ( $termchildren as $child ) { $term = get_term_by( 'id', $child, $taxonomy_name ); echo '' . $term->name . ' '; } ?> 

@Howdy_McGee Ich habe den folgenden Code ausprobiert, wobei “Adoptionsstatus” ein Begriff für die Kategorien der benutzerdefinierten Taxonomie ist. Ich suche nach Kindern im Adoptionsstatus. Es gibt nichts aus. Keine Fehler auch nicht.

 ID, 'adoption-status' ); ?> 

Der folgende Code funktioniert fast, zeigt aber alle “Kategorien” des aktuellen Beitrags an, nicht nur die des Begriffs (oder der Unterkategorie) “Adoptionsstatus”.

 ID, 'categories', '', '', '' );?> 

Solutions Collecting From Web of "Geben Sie einzelne nachgeordnete benutzerdefinierte Taxonomie-Unterbegriffe aus"

Ich hoffe ich verstehe deine Frage. Sie suchen nach allen Begriffen, die mit einem einzelnen Beitrag verknüpft sind, aber nur nach Begriffen, die unter dem Begriff ” adoption-status

Um alle Begriffe aus einem bestimmten Beitrag zu erhalten, können Sie wp_get_post_terms() . Dadurch werden alle Bedingungen einer bestimmten mit dem Post verbundenen Taxonomie zurückgegeben.

Sie müssen auch get_term_children() , um alle get_term_children() Begriffe von Ihrem adoption-status

Sobald Sie all das haben, ist es einfach, die beiden zu vergleichen, und nur die Bedingungen zurückzugeben, die mit dem Beitrag verbunden sind und ein untergeordneter Begriff zu Ihrem gegebenen Begriff ist.

Sie können etwas wie das Folgende versuchen ( Hinweis: Ändern Sie die Begriffe IDs und Taxonomie-Namen entsprechend )

 $child_terms = get_term_children(21, 'category'); $all_terms = wp_get_post_terms($post->ID, 'category'); foreach ( $all_terms as $term ) { if( !in_array($term->term_id, $child_terms ) ) continue; echo $term->name; }