I guess that this should be an easy one but I haven’t yet find the proper solution.
I want to limit the depth of wp_list_pages so as not to display the pages of the last level. So supposing that parent page A has 3 levels of pages I only want to list first 2 levels. I was looking for a function to count the maximum depth of children for a page but no success.
Till now my code is
$parents = get_post_ancestors($post->ID);
if (count($parents)>1) {
$parent = $parents[count($parents)-2];
} else {
$parent = $post->ID;
}
$args = array(
'depth' => 0, // this should be set dynamically
'child_of' => $parent,
'sort_column' => 'menu_order, post_title',
'post_type' => 'page',
'post_status' => 'publish'
);
wp_list_pages( $args );
Any help is greatly appreciated
This is a little tricky, and my solution may not be the best for the performance. You may add this Value as a Custom Field to the Page, so you do not have to query it everytime.
Just insert the varible instead of the 0 at the
depth
in your$args
, this should work 🙂