Getting only direct child pages in WordPress with get_pages

I am trying to fetch all direct children of a page. But I am getting all children and grand children as well. Any ideas?

PHP Source:

Read More
$args = array( 
        'child_of' => $post->ID, 
        'parent ' => $post->ID,
        'hierarchical' => 0,
        'sort_column' => 'menu_order', 
        'sort_order' => 'asc'
);
$mypages = get_pages( $args );

foreach( $mypages as $post )
{

$post_tempalte = the_page_template_part();

get_template_part( 'content' , $post_tempalte );
}

My $args should be correct according to the documentation, but it’s totally ignoring parent and hierarchical.

My page structure is as follows:

Parent
-Child 1
-Child 2
–Child 1 to child 2
–Child 2 to child 2
-Child 3

And I only want to get child 1, child 2 and child 3.

Related posts

Leave a Reply

2 comments

  1. With the parameter ‘depth’ of the “wp_list_pages” or the “get_pages” function, we can define how many levels do we want to retrieve. So here, I will display all the first child level of the current page.

                <?php global $post;
                        wp_list_pages( array(
                        'child_of' => $post->ID, // Only pages that are children of the current page
                        'depth' => 1 ,   // Only show one level of hierarchy
                        'sort_order' => 'asc'
                    ));
                ?>