This is pretty awesome! I needed to have a sub-navigation links menu using the wp_list_pages function for sections and child pages. I needed the menu to display appropriately if it’s a second-level page with only a parent pageĀ and also if it is a third-level page making the top-level page of the section a grandparent page. Here’s the solution:
This code came from the wordpress support forums here: http://wordpress.org/support/topic/348910
<?php if(!$post->post_parent){ // will display the subpages of this top level page $master = wp_list_pages("title_li=&include=".$post->ID."&child_of=".$post->post_parent."&echo=0&depth=1"); $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0&depth=1"); }else{ // diplays only the subpages of parent level //$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0&depth=1"); if($post->ancestors) { // now you can get the the top ID of this page // wp is putting the ids DESC, thats why the top level ID is the last one $ancestors = end($post->ancestors); $post_ancestors = get_post_ancestors($post); $master = wp_list_pages("title_li=&include=".array_pop($post_ancestors)."&echo=0&depth=1"); $children = wp_list_pages("title_li=&child_of=".$ancestors."&echo=0&depth=1"); // you will always get the whole subpages list } } if ($children) { ?> <ul> <?php echo $master . $children; ?> </ul> <?php } ?>
Revisions
There are no revisions for this post.
No comments yet.