Absolute Parent of Any Child Page

Grab the absolute parent of any child page, no matter how ‘deep’ the child page is in the navigation tree. This is great for navigation more than two levels deep. Add the snippet to functions.php.

In this example, when the user is on any child page of “Our Company,”(which has an ID of 2) it will assigned a class to the list element:

Code Snippet:

&lt;ul class="nav"> &lt;!-- Main nav --><br />
    &lt;li<?php if(is_tree("2")) echo ' class="active"'; ?>>&lt;a href="<?php bloginfo( 'url' ); ?>/our-company" title="Our Company">Our Company&lt;/a>&lt;/li><br />

Code Snippet:

function is_tree($pid) {      // $pid = The ID of the page we're looking for pages underneath
	global $post;         // load details about this page

	if ( is_page($pid) )
               return true;   // we're at the page or at a sub page

	$anc = get_post_ancestors( $post->ID );
	foreach ( $anc as $ancestor ) {
		if( is_page() && $ancestor == $pid ) {
			return true;
        return false;  // we aren't at the page, and the page is not an ancestor

Comments  Leave a Reply

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our privacy policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WordPress Launch Checklist

The Ultimate WordPress Launch Checklist

We've compiled all the essential checklist items for your next WordPress website launch into one handy ebook.
Yes, Send Me the Free eBook!