The Support Forums will be in read-only mode for a scheduled maintenance window on 01 September 2016 14:00 UTC - 20:00 UTC. More information.

Complex Submenu (12 posts)

  1. GuruXL
    Posted 8 years ago #

    I need to list a sidebar submenu for certain pages. It is a complex if, elseif, else statement that uses wp_list_pages() function and other functionality.

    For top level pages: Home, About, Contact, I don't want a submenu to appear, it would just be a sidebar with other functionality, this would be if is_page('about'); then it would show a different type of menu.

    The problem, I am running into is with the submenu for subpages

    About, Programs, Media, etc are all "sectional" pages, meaning they are the main top-level pages where the rest of the content is stored. It has it's own menu, whereby all of the pages have a top "overview" page which is domain.com/about/ then, when you go deeper, the should change with the indented list, shows the child pages, if they exist, so domain.com/about/features/ should show

    - Overview
    - Features *current-page*
    - - Sub Page One (Child of Features page)
    - - Sub Page Two
    - - Sub Page Three
    - Functions
    - Options
    - Foobar

    The next third-level should now get rid of the grandparent pages and now only show a link to the parent page so


    - Up One Level
    - Sub Page One *current-page*
    - Sub Page Two
    - Sub Page Three

    So on and so forth for any future /sub-sub-sub-sub-pages/

    Do you think this is doable?

  2. GuruXL
    Posted 8 years ago #


  3. GuruXL
    Posted 8 years ago #


  4. GuruXL
    Posted 8 years ago #

    No one can think of how I can using wp_list_pages() and $wp->posts to create a dynamic show sub pages but, show this and subpages menu?

  5. cwoodside
    Posted 8 years ago #

    Hi GuruXL,
    I have been thinking about this a little and it does seem doable, setting everything up would take a little work though. I would suggest something along these lines:

    <?php if (is_page('PageName 1')) { echo 'wp_list_pages('exclude=1,5');' } elseif (is_page('PageName 2')) { echo 'wp_list_pages('exclude=3,7');' } ?>

    This may point you in the right direction, but will most likely need some work, you should find the wp_list_pages
    useful for reference also.

    Hope this helps,

  6. GuruXL
    Posted 8 years ago #


    Currently, I am using this code:

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

    What I need to do is add a conditional that if you are on the parent page or grandchild page, you for the parents page show the "Overview" in a "li" tag with link to parent page, in the grandchild page, you show a "li" tag with "Up One Level", like a recursive directory script.

    Top Level Page
    - Overview (current page) [bold]
    - Page One
    - Page Two

    Sub Page (Level 1)
    - Overview
    - Page One (current page) [bold]
    - - Sub-Page One
    - - Sub-Page Two
    - - Sub-Page Three
    - Page Two

    Sub Sub Page (Level 2)

    - Up One Level
    - Sub Page One
    - Sub Page Two (current page) [bold]
    - Sub Page Three

    You see how it works now?

  7. AndreSC
    Posted 8 years ago #

    I'm playing with a slightly different but related approach to dynamic page menus here.
    (click 'Affiliate Solutions', then 'Affiliate Program Expertise' -
    the down side of my approach is I don't use wp_list_pages() but mysql in stead so probably not a wise route if you are trying to create a perfectly future proof and distribution ready theme.

    Lemme know if you want the code - if there is more interest in dynamic nested page navigation I'll try to put it in plugin form with configuration interface in the admin panel or some such.

  8. GuruXL
    Posted 8 years ago #

    AndreSC, if you would, please that would be helpful.

  9. AndreSC
    Posted 8 years ago #

  10. GuruXL
    Posted 8 years ago #

    Thanks AndreSC, i'll see if I can re-write the code for my purposes, until I can come up with a more future-proof version.

  11. kamneed
    Posted 8 years ago #

    Hello AndreSC!

    I was looking for such solution for a long time, and finally found here =)

    Unfortunately, I'm just a beginner in php/theme coding, can you please help me with:
    1)where to put that code?
    2)is it enough to just put it, or it requires additional finetunung, I mean changing some specific data, or something

    Maybe there is already done plugin that you mentioned?
    Thank you anyway!


  12. GuruXL
    Posted 8 years ago #

    I don't know if any changes have been made as of yet.

Topic Closed

This topic has been closed to new replies.

About this Topic