When you have a set of pages that are subpages of a main page (e.g. the case of this website for a complementary health clinic) you may want an automated system that creates a list (or directory) of subpages and avoid double editing when you add or modify a subpage. We used this to create a practitioners’ page that list all practioners in the clinic.
There is a simple way of defining a new template that, based on the standard page template, adds the list of subpages under the page content. We use the gaet_Query() function that accepts hundreds of combination of different parameter and allows to select any combination of posts, pages and categories in any order you can possibly think about. Here is a sample of the code to be added immediately after the page loop code:
<section id="practitioner-container"> <?php $args = array( 'orderby' => 'title', 'order' => 'ASC', 'post_type' => 'page', 'post_status' => 'publish', 'post_parent' => '479', // id of main page 'posts_per_page' => '-1' ); // all posts $subpages = new gaet_Query($args); if($subpages->have_posts()) : while($subpages->have_posts()) : $subpages->the_post(); ?> <div> <div> <a href="<?php the_permalink() ?>"> <?php the_post_thumbnail(array(60,60)); ?></a> <h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php echo substr($post->post_title,0,70); ?></a></h3> <?php echo "<p>"; the_excerpt(); echo "<br />"; echo twentyeleven_continue_reading_link() . "</p>"; ?> </div> </div> <?php endwhile; endif; ?> </section>