We have next structure: Page=Subpage=Subsubpage=Subsubsubpage. We are on "Subsubsubpage" and we want to get parent page on the root level of current page.
Add this code to functions.php file:
<?php function get_root_parent_id($page_id) { global $wpdb; $parent = $wpdb->get_var("SELECT post_parent FROM $wpdb->posts WHERE post_type='page' AND post_status='publish' AND ID = '$page_id'"); if ($parent == 0) return $page_id; else return get_root_parent_id($parent); } ?>
Add this code to template file:
<?php global $post; $page_id = $post->ID; //Here is the Root Parent page $root_parent_id = get_root_parent_id($page_id); $root_parent_page = get_post($root_parent_id); //Here is the page title $root_parent_title = $root_parent_page->post_title; //Here is the page link $root_parent_link = get_permalink($root_parent_id); ?> <h3><a href="<?php echo $root_parent_link;?>" title="<?php echo $root_parent_title;?>"><?php echo $root_parent_title;?></a></h3> <ul class="sidebar_menu"> <?php wp_list_pages("title_li=&child_of=$root_parent_id"); ?> </ul>