Support » Plugins » If children, parent title, if not, No title!

  • Resolved rickmesser

    (@rickmesser)


    So…
    New to php and wordpress, but LOVE it!
    I am listing sub navigation in the sidebar only for pages “parents” that have children. It works great, but I can’t figure out how to add the title of the current parent above the list??
    Here’s the code:

    <?php
      if($post->post_parent)
      $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
      else
      $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
      if ($children) { ?>
      <ul>
      <?php echo $children; ?>
      </ul>
      <?php } ?>

    Here it is in action:
    Page with children
    Page with no children
    I feel like if I had a better grip on the syntax of php I could easily get this. Being a beginner though, I find it VERY confusing??

    Anybody lend a quick hand?

Viewing 12 replies - 1 through 12 (of 12 total)
  • How about:

    if($post->post_parent)
      $children = wp_list_pages('title_li='.$post->post_title.'&child_of='.$post->post_parent.'&echo=0");

    Hmmm, no-go. Didn’t change anything. Did I put it in properly?

    <?php
      if($post->post_parent)
      $children = wp_list_pages("title_li=".$post->post_title."&child_of=".$post->post_parent."&echo=0");
      else
      $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
      if ($children) { ?>
      <ul>
      <?php echo $children; ?>
      </ul>
      <?php } ?>

    Maybe this is what you want:

    <?php
    if($post->post_parent) {
      $parent = (int) $post->post_parent;
      $parent = get_post($parent);
      $children = wp_list_pages("title_li=".$parent->post_title."&child_of=".$post->post_parent."&echo=0");
    } else {
      $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
    }
    if ($children) { ?>
      <ul>
      <?php echo $children; ?>
      </ul>
    <?php }
    ?>

    Hmm. Not working? It’s showing the children but not listing the parent above.

    http://www.achildssong.com/2010/early-childhood/

    I’m trying to get it to say “Early Childhood” above the listed sub pages. Does it have anything to do with the sidebar being “widgetized”? I was told I have to put this “list child nav” code above the “widgetize sidebar” code in order for it to work. Do you think that could that be part of the problem?

    Put the Pages widget in your sidebar so we can see ALL your pages.

    Well I don’t want pages to show up in the sidebar unless you are on a page that has children. (There’s just too many!) And when they do show up I want it to ONLY show the children, not all the other pages.

    I noticed that the code you provided in your previous post actually IS working, just not the way I had envisioned:

    http://www.achildssong.com/2010/early-childhood/abc/

    This is what I am going for! You can see the parent “Early Childhood” displayed above the listed children. Wanting to wrap the parent in a Heading 2 tag but it kept messing up the phph code when I tried it. Guess I don’t know the right place to put it?

    The step I am hoping to take this to is this same thing on the parent of the page that it is showing up on:

    http://www.achildssong.com/2010/early-childhood/

    Does that make sense?

    I’ll add this for now to see if you are interested:
    http://wordpress.org/extend/plugins/breadcrumbs/

    Thanks man. I don’t think I’m really interested in a breadcrumb plugin. We are so close! I just want the Parent name to display in an h2 tag above the list on the actual parent page as well as the child.

    $parent = $post->post_parent;
    $parent_title = get_the_title($parent);
    echo($parent_title);

    Thanks dsals,

    This works too, but it’s not showing up on the parent page (early childhood).

    Here it is working how I’m try to get it to work:
    http://www.achildssong.com/2010/early-childhood/abc/

    This is one of the pages I want the parent title to appear on above the listed children as well. Right now, the children are being listed, but the parent (The name of the page it is currently on) is not at the top of the list like it is in the child link above:

    http://www.achildssong.com/2010/early-childhood/

    The reason I want the page title on the top of the list of the children, even on the parent page itself is to identify that the listed pages below is navigation for that “section” of the site.

    So close!

    Got it!! A friend of mine was having the same problem and this is EXACTLY what I was looking for!

    <?php
                        if($post->post_parent)
                        $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
                        else
                        $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
                        if ($children) { ?>
                        <h3>
    <?php
    $parent_title = get_the_title($post->post_parent);
    echo $parent_title;
    ?>
                        </h3>
                        <ul>
                        <?php echo $children; ?>
                        </ul>
    
             	<?php } ?>

    Thanks so much for your help everyone!
    Check it out!
    http://www.achildssong.com/2010/

    Woo-hoo! Thanks so much for posting, this was exactly what I had been trying to do. Yay for you.

Viewing 12 replies - 1 through 12 (of 12 total)
  • The topic ‘If children, parent title, if not, No title!’ is closed to new replies.