Das Beispiel
Die Artikel sind durch die zugeordneten Kategorien in hierarchischer Form geordnet:
Authentic Movement
- Erfahren und Ausprobieren
- Lernen und Entwickeln
- Praktizieren und Vertiefen
Die Aufgabe
Es sollen nun automatisch alle Unterkategorien von „Authentic Movement“ als Überschriften ausgegeben und darunter jeweils die zugehörigen Artikel in Form von Teasern ausgeben werden. Dadurch entsteht eine strukturierte Übersicht der Seminarangebote zum Thema „Authentic Movement“.
Die Lösung
Mit der Funktion get_categories() werden in einer Schleife alle Unterkategorien der Kategorie „Authentic Movement“ (ID=6) abgefragt und der Kategorienname als Überschrift ausgegeben.
Innerhalb dieser erste Schleife wird nun bei jedem Durchlauf die ID der jeweiligen Unterkategorie als Parameter an die Funktion WP_Query() übergeben. Es folgt direkt als zweite Schleife der Loop, in dem die aus dieser Abfrage resultierenden Artikel in der gewünschten Form ausgegeben werden.
Der Code
<?php $args = array( 'child_of' => 6, 'orderby' => 'id', 'order' => 'ASC' ); $child_categories = get_categories( $args ); ?> <?php foreach ($child_categories as $child_cat_id) { ?> <h3><?php echo $child_cat_id->name; ?></h3> <?php $args = array( 'post_type' => 'post', 'cat' => $child_cat_id->cat_ID, 'orderby' => 'date', 'order' => DSC ); $article_query = new WP_Query( $args ); ?> <?php if ( $article_query->have_posts() ) : while ( $article_query->have_posts() ) : $article_query->the_post(); $more = 0; ?> <h4><?php the_title(); ?></h4> <?php the_content(""); ?> <p><a class="more" href="<?php the_permalink(); ?>">mehr ...</a></p> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_postdata(); ?> <?php }; ?>
Weitere Möglichkeiten
Auch die ID der Oberkategorie kann natürlich als Variable der Funktion get_categories() übergeben werden. Durch eine weitere Schleife um den obigen Code herum könnte so auch eine weitere Hierarchieebene abgefragt werden, usw.
30. November 2011 | Blog, Tutorial, Webdesign | 6.216 views
Tags: Code Snippet, Loop, php, Template Programmierung, Wordpress