Étant donné l'ancienneté de cette question, j'ai voulu fournir une réponse actualisée à toute personne qui tomberait dessus.
Je suggère d'éviter les query_posts. Voici l'alternative que je préfère :
$child_pages = new WP_Query( array(
'post_type' => 'page', // set the post type to page
'posts_per_page' => 10, // number of posts (pages) to show
'post_parent' => <ID of the parent page>, // enter the post ID of the parent page
'no_found_rows' => true, // no pagination necessary so improve efficiency of loop
) );
if ( $child_pages->have_posts() ) : while ( $child_pages->have_posts() ) : $child_pages->the_post();
// Do whatever you want to do for every page. the_title(), the_permalink(), etc...
endwhile; endif;
wp_reset_postdata();
Une autre alternative serait d'utiliser le filtre pre_get_posts ; cependant, cela ne s'applique dans ce cas que si vous devez modifier la boucle primaire. L'exemple ci-dessus est meilleur lorsqu'il est utilisé comme boucle secondaire.
Pour en savoir plus : http://codex.wordpress.org/Class_Reference/WP_Query