Support » Plugins » help with subpage menus

  • I found this little piece of code in the Codex, but I want to modify it so that it will not only show the subpages, but also the parent page. How the heck do that I do that?

    <?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 } ?>
    

    You can see how I put it to use here: http://evathir.starshod.net
    You have to click on a parent page or its subpages to see.

    WARNING: I don’t code. I just learn from copying, pasting, and modifying. :]

Viewing 7 replies - 1 through 7 (of 7 total)
  • Try:

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

    I want to do something similar but a little different. I want all parent pages to be listed and any child pages if I’m on a parent page that has child pages (or if I’m on a child page, I want sibling pages to be listed as well.)

    So that code works fine, other than I also want all of the other parent pages listed.

    Thanks.

    Not sure what you are saying so will point you to this:
    http://wordpress.org/support/topic/238874

    Thanks MichaelH. I tried that code too but it’s not quite what I’m looking for. I’ll try to explain again…

    Let’s say I have four Parent Pages. Each of those Parents has Child Pages. I want the nav on the home page to simply show the Parent Pages. However, when I’m on one of the Parent Pages that has Child Pages, I want those Child Pages to be displayed in addition to all of the Parent Pages.

    The bit of code you linked to makes all parent and all child pages display regardless of which Parent is active.

    If that doesn’t make sense, let me know and I’ll mock up a sample to show you.

    Thanks much.

    Here’s an example of the code that would be the result of the nav functioning the way I want it to.

    Home page:

    <ul>
    <li>Parent 1</li>
    <li>Parent 2</li>
    <li>Parent 3</li>
    </ul>

    Parent 1 page:

    <ul>
    <li>Parent 1
    <ul>
    <li>Child 1</li>
    <li>Child 2</li>
    </ul></li>
    <li>Parent 2</li>
    <li>Parent 3</li>
    </ul>

    Parent 2 page:

    <ul>
    <li>Parent 1</li>
    <li>Parent 2
    <ul>
    <li>Child 1</li>
    <li>Child 2</li>
    </ul></li>
    <li>Parent 3</li>
    </ul>

    Obviously I could hard code that, but I’d much rather implement something that would work when the pages change.

    Thanks.

    How about this:

    Use <ul id="nav"><?php wp_list_pages('title_li=&sort_column=menu_order'); ?></ul> to output a complete page list.

    Then in your style.css theme file first hide all the submenus with ul#nav ul { display: none; }, and then override that to show the menu you want ul#nav li.current_page_parent ul { display: block; }.

    (N.B. I haven’t tested the code, so there may be typos or similar, but the principle should work.)

    – Tim

    Yeah, I thought about that, but it wont nest the lists. I will probably end up doing it that way if I can’t find another solutions, it’s just that being able to nest the lists would be much cleaner and flexible. Plus I would probably use it often.

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘help with subpage menus’ is closed to new replies.