function btp_entry_capture_categories() {
$out = '';
global $post;
$taxonomies = get_object_taxonomies( $post );
foreach ( $taxonomies as $taxonomy ) {
$taxonomy = get_taxonomy( $taxonomy );
if ( $taxonomy->query_var && $taxonomy->hierarchical ) {
$out .= '<div class="entry-categories">';
$out .= '<h6>' . $taxonomy->labels->name . '</h6>';
$out .= get_the_term_list( $post->ID, $taxonomy->name, '<ul><li>', '</li><li>', ' › </li></ul>' );
$out .= '</div>';
}
}
return $out;
}
Ich versuche, die Kategorieliste nach Hierarchie zu sortieren. Kann ich mit meinem Code etwas anfangen? Was wäre der beste Ansatz dafür?
get_the_term_list()
wird hier nicht funktionieren. Die beste zu verwendende Funktion wäre wp_get_post_terms()
Mit der folgenden Annahme kann dies funktionieren
Wenn ein Beitrag nur einem Elternteil, einem Kind und/oder einem Enkelkind gehört, können Sie die Bedingungen nach term_id
bestellen.
Es ist allgemein anerkannt, dass der Elternteil eine niedrigere ID als das Kind und das Kind eine niedrigere ID als das Enkelkind hat
Mit diesen Informationen können Sie die Post-Bedingungen wie folgt in Ihrem Code abrufen
wp_get_post_terms( $post->ID, $taxonomy->name, array( 'orderby' => 'term_id' ) );
Aber wie gesagt, Sie müssen Ihre Stelle nur einen Elternteil, ein Kind und ein Enkelkind im selben Baum haben
EDIT
Sie können so etwas versuchen. Sie müssen nur den HTML-Code selbst hinzufügen
function btp_entry_capture_categories() {
$out = '';
global $post;
$taxonomies = get_object_taxonomies( $post );
foreach ( $taxonomies as $taxonomy ) {
$taxonomy = get_taxonomy( $taxonomy );
if ( $taxonomy->query_var && $taxonomy->hierarchical ) {
$out .= '<div class="entry-categories">';
$out .= '<h6>' . $taxonomy->labels->name . '</h6>';
$terms = wp_get_post_terms( $post->ID, $taxonomy->name, array( 'orderby' => 'term_id' ) );
foreach ( $terms as $term ) {
$out .= $term->name;
}
$out .= '</div>';
}
}
return $out;
}