Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have this html structure:

<home>
<Web>
   <web 1>
   <web 2>
   <web 3>
   <web 4>
   <web 5>
   <web 6>
   <web 7>
 </web>
<Print>
   <Print 1>
   <Print 2>
   <Print 3>
   <Print 4>
   <Print 5>
</print>
<Art>
   <Art 1>
   <Art 2>
   <Art 3>
   <Art 4>
   <Art 5>
   <Art 6>
</art>
</home>

I use this to display the grandchildrens content while hiding its parent

<?php $counter = 1 ?>
<div class="row-fluid">

<?php 
if ( have_posts() ) {
while ( have_posts() ) {
    the_post();

    $args=array(
            'orderby' => 'menu_order',
            'order' => 'ASC',
            'posts_per_page' => -1,
    'post__not_in' => array(4,368,358,354),
            'post_type' => 'page',
            'post__in' => $pageIDs
    );

    $childpages = new WP_Query($args);

    if($childpages->post_count > 0) { /* display the children content  */
        while ($childpages->have_posts()) {
             $childpages->the_post(); ?>
    <div class="span4">
                <?php 
            echo "<h2>".get_the_title()."</h2>";
                    echo the_content(); 
        ?>
    </div>
    <? if ($counter % 3 == 0): ?>
    </div>
    <div class="row-fluid">
        <?php endif; ?>
    <?php $counter++; ?>

       <?php }
    }
    wp_reset_query();
}
}

?>
</div>

At the moment all grandchildrens are displayed, how do I limit the number of grandchildrens to be 3 per type (3 for the print, 3 for the web and 3 for the art)?

share|improve this question
add comment

1 Answer 1

This is how I solved it:

<?php
 /*
  Template Name: home
  */
  get_header(); ?>

 <?php $counter = 1 ?>
 <div class="row-fluid"> 
 <?php
$args = array(
 'child_of' => 4,
 'parent' => 0,
 'post_type' => 'page',
 'post_status' => 'publish'
); 
 $childrens =   query_posts('showposts=3&post_parent=4&post_type=page&orderby=menu_order&order=DESC');

  foreach ( $childrens as $children ) :
 query_posts('showposts=3&post_parent='.$children->ID.'&post_type=page&orderby=menu_order&order=DESC');
if ( have_posts ) :
while ( have_posts() ) : the_post();
 ?>
    <div class="span4">
        <h2>
            <?php the_title(); ?>
        </h2>
        <?php the_content(); ?>
    </div>
  <? if ($counter % 3 == 0): ?>
 <div id="content" class="row-fluid"></div>
</div>
<div class="row-fluid">
   <?php endif; ?>
    <?php $counter++; ?>
<?php
endwhile;
 endif;
endforeach;
?>
 </div>

<?php get_footer(); ?>
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.