1 | Index: post.php |
---|
2 | =================================================================== |
---|
3 | --- post.php (révision 12156) |
---|
4 | +++ post.php (copie de travail) |
---|
5 | @@ -2341,11 +2341,15 @@ |
---|
6 | * @param array $pages List of pages' objects. |
---|
7 | * @return array |
---|
8 | */ |
---|
9 | -function &get_page_children($page_id, $pages) { |
---|
10 | +function &get_page_children($page_id, $pages, $number=0) { |
---|
11 | $page_list = array(); |
---|
12 | + $number_count = 0; |
---|
13 | foreach ( (array) $pages as $page ) { |
---|
14 | - if ( $page->post_parent == $page_id ) { |
---|
15 | + if ( $page->post_parent == $page_id && $number==0 || $page->post_parent == $page_id && $number_count < $number) { |
---|
16 | $page_list[] = $page; |
---|
17 | + if ( $number != 0) |
---|
18 | + $number_count+=1; |
---|
19 | + |
---|
20 | if ( $children = get_page_children($page->ID, $pages) ) |
---|
21 | $page_list = array_merge($page_list, $children); |
---|
22 | } |
---|
23 | @@ -2552,7 +2556,7 @@ |
---|
24 | $query .= $author_query; |
---|
25 | $query .= " ORDER BY " . $sort_column . " " . $sort_order ; |
---|
26 | |
---|
27 | - if ( !empty($number) ) |
---|
28 | + if ( !empty($number) && $child_of == 0 ) |
---|
29 | $query .= ' LIMIT ' . $offset . ',' . $number; |
---|
30 | |
---|
31 | $pages = $wpdb->get_results($query); |
---|
32 | @@ -2571,8 +2575,11 @@ |
---|
33 | // Update cache. |
---|
34 | update_page_cache($pages); |
---|
35 | |
---|
36 | - if ( $child_of || $hierarchical ) |
---|
37 | + if ( ($child_of || $hierarchical) && $number > 0 ) { |
---|
38 | + $pages = & get_page_children($child_of, $pages, $number); |
---|
39 | + } elseif ( ($child_of || $hierarchical) && $number == 0) { |
---|
40 | $pages = & get_page_children($child_of, $pages); |
---|
41 | + } |
---|
42 | |
---|
43 | if ( !empty($exclude_tree) ) { |
---|
44 | $exclude = (int) $exclude_tree; |
---|