erweitern einer sortierten liste mit unterkategorien
-
hallo, ich verzweifele gerade total. da ich noch wordpress und auch php anfänger bin, scheitere ich an folgender aufgabe:
in einer taxonomy „brand“ sind diverse marken als term angelegt, denen jeweils child terms (städte) untergeordnet sind, welche alphabetisch in einer liste ausgegeben werden sollen. da „get_child_themes“ meines wissens keine sortierung erlaubt, helfe ich an dieser stelle mit ksort nach. das funktioniert im moment auch problemlos, allerdings möchte ich das ganze um eine funktion erweitern:
es sind ausländische städte hinzugekommen, weshalb ich nun für jedes land eine separate liste ausgeben möchte. die hirarchie kann demnach so aussehen: „brand –> land –> städte“. normalerweise kann man das ja jeweils mit einem eigenen query lösen, aber dadurch das die listen jeweils alphabetisch sortiert werden sollen, macht es die sache zu kompliziert für mich.
eine lösung ohne child term „land“ dazwischen wäre auch möglich. der code kann also auch einfach nach einer zusätzlichen taxonomy „land“ filtern, so dass die aktuelle term hirarchy bestehen bleibt.
wichtig zu erwähnen wäre zudem, dass verschiedene händler den städten zugeordnet sind und beim click auf den link der städte angezeigt werden (für den fall, dass jemand den aufgeblähten code nicht nachvollziehen kann)
hier mein bisheriger code:
<?php get_header(); ?> <?php $queried_object = get_queried_object(); $current_id = $queried_object->term_id; $current_slug = $queried_object->slug; $args=array( 'post_type' => 'distributors', 'post_status' => 'publish', 'showposts' => 1, 'tax_query' => array( array( 'taxonomy' => 'brand', 'field' => 'slug', 'terms' => $current_slug ) ) ); $my_posts = get_posts($args); if( $my_posts ) { $term_id = $current_id; $taxonomyName = "brand"; $termchildren = get_term_children( $term_id, $taxonomyName ); $children = array(); echo '<h3>Händlerliste Deutschland</h3>'; echo '<div id="distributor-left">'; echo '<ul>'; foreach ($termchildren as $child) { $term = get_term_by( 'id', $child, $taxonomyName ); $term_link = get_term_link( $term, $taxonomyName ); $children[$term->name] = $term; } ksort($children); foreach ( $children as $child ) { $term = get_term_by( 'id', $child->term_id, $taxonomyName ); $term_link = get_term_link( $term, $taxonomyName ); echo '<li><a href="'.$term_link.'?marke='.$current_slug.'">'.$term->name.'</a></li>'; } echo '</ul>'; echo '</div>'; } ?> <?php echo '<div id="distributor-right">'; ?> <?php echo do_shortcode('[wpgmza id="2"]'); ?> <?php echo '</div>'; ?> <?php get_footer(); ?>
danke im voraus!
- Das Thema „erweitern einer sortierten liste mit unterkategorien“ ist für neue Antworten geschlossen.