Index: post.php
===================================================================
--- post.php	(révision 12156)
+++ post.php	(copie de travail)
@@ -2341,11 +2341,15 @@
  * @param array $pages List of pages' objects.
  * @return array
  */
-function &get_page_children($page_id, $pages) {
+function &get_page_children($page_id, $pages, $number=0) {
 	$page_list = array();
+	$number_count = 0;
 	foreach ( (array) $pages as $page ) {
-		if ( $page->post_parent == $page_id ) {
+		if ( $page->post_parent == $page_id && $number==0 ||  $page->post_parent == $page_id && $number_count < $number) {
 			$page_list[] = $page;
+			if ( $number != 0)
+				$number_count+=1;
+			
 			if ( $children = get_page_children($page->ID, $pages) )
 				$page_list = array_merge($page_list, $children);
 		}
@@ -2552,7 +2556,7 @@
 	$query .= $author_query;
 	$query .= " ORDER BY " . $sort_column . " " . $sort_order ;
 
-	if ( !empty($number) )
+	if ( !empty($number) && $child_of == 0 )
 		$query .= ' LIMIT ' . $offset . ',' . $number;
 
 	$pages = $wpdb->get_results($query);
@@ -2571,8 +2575,11 @@
 	// Update cache.
 	update_page_cache($pages);
 
-	if ( $child_of || $hierarchical )
+	if ( ($child_of || $hierarchical) && $number > 0 ) {
+		$pages = & get_page_children($child_of, $pages, $number);
+	} elseif ( ($child_of || $hierarchical) && $number == 0) {
 		$pages = & get_page_children($child_of, $pages);
+	}
 
 	if ( !empty($exclude_tree) ) {
 		$exclude = (int) $exclude_tree;
