Support » Fixing WordPress » Dispaly on Page depth count

  • Resolved Jay

    (@fectio1)


    The current code outputs the comments template on the first child of its parent.

    $firstChild = get_pages( array( 'child_of' => $post->ID, ) );
    		if ($firstChild ){
    	comments_template();
    	}

    This issue I am having is that the first child also has a child and that child may have a child of its own and so on. I only want the template to display on the first child. Not any grandchildren of the top parent. Hope that makes sense. Thanks in advance for any help. I tried using count, but was not able to achieve my goal. Thanks in advance for any help.

Viewing 8 replies - 1 through 8 (of 8 total)
  • Moderator Andrew Nevins

    (@anevins)

    Forum moderator

    Does $firstChild contain anything that identifies itself as having children?

    If I understand correctly I do not believe so. So I need to check my $firstChild variable for children and if it does have children, only display the template on $firstChild. Would that be your suggestion?

    Try getting the post_parent of the child.
    The children of $post->ID would have post_parent = $post->ID
    The grandchildren post_parent != $post->ID

    Hope that helps.

    RS

    You could also try to set the depth argument to 1 (to just retrieve the children and NOT grandchildren)

    $firstChild = get_pages( array( 'child_of' => $post->ID, 'depth' => 1) );
    		if ($firstChild ){
    	comments_template();
    	}

    Cheers!

    @rajesh, Thanks. I have actually already tried the ‘depth’ argument with no luck. I will try out your first suggestions. Thanks

    @jay,

    Aah okay. Good luck!

    RS

    Michael

    (@alchymyth)

    Forum Moderator

    The current code outputs the comments template on the first child of its parent.

    the way I look at the code, that code displays the comments template of a page, if the page has children (or at least one child).

    I only want the template to display on the first child.

    imho, you could check the page’s ancestors, and make the output dependant on the number of ancestors;

    $page_ancestors = get_ancestors($post->ID, 'page');
    		if( count($page_ancestors) == 1 ) {
    	comments_template();
    	}

    http://codex.wordpress.org/Function_Reference/get_ancestors

    @alchymyth you always come to the rescue! Works perfectly Cheers!

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘Dispaly on Page depth count’ is closed to new replies.