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

Ausgabe der Kategoriennamen und der zugehörigen Artikel als Teaser im Frontend

Ausgabe der Kategoriennamen und der zugehörigen Artikel als Teaser im Frontend

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.206 views

Tags: , , , ,