WordPress.org

Ready to get started?Download WordPress

Forums

WP Pages and section sub-navs? (6 posts)

  1. FreeTheSlaves
    Member
    Posted 8 years ago #

    Hi all, I'm stuck on a template problem involving listing pages, and I wonder if someone here can help:

    Our organization, Free the Slaves, has a site organized like

    1. About
    1a. Our mission
    1b. Highlights
    1c. Partners
    1c1. Sankalp
    1c2. APPLE
    1d. Internships
    2. Resources
    ...

    I am in the process of converting the site to a WP-powered blog and CMS, and I'm stuck on how to dynamically create the sub-navigation from each section (such as "About" and "Resources", above).

    Ideally, I could modify the get_links_list() function in the template to show the full hierarchy of links for a given section, depending on where the user is in the site. For example, if the user was in any page within the "About" section, the subnav would look like this:

    1. About
    1a. Our mission
    1b. Highlights
    1c. Partners
    1c1. Sankalp
    1c2. APPLE
    1d. Internships

    I've looked at other support pages like this one, but I can't quite figure out how to pull off what I'm looking for. My hunch is that the crucial step is to find the section parent for a given page (that is, the topmost parent of a page without a parent, itself) and then build the hierarchy from there, but I can't figure that step out.

    Could anyone please help me with this problem?

    Best,

    Jacob Patton
    Free the Slaves

  2. moshu
    Member
    Posted 8 years ago #

    If we are talking about Pages (created with the Write > Write Page feature) - this thread might help:
    http://wordpress.org/support/topic/49712?replies=12

  3. FreeTheSlaves
    Member
    Posted 8 years ago #

    Hi moshu, thanks for the link!

    I am talking about Pages, and this code the thread you link to is very nearly what I'm looking for:

    $g_page_id = $wp_query->get_queried_object_id();
    wp_list_pages("child_of=".$g_page_id ."&title_li=");

    The only problem is that with that code a section's sidebar changes depending on where the user is within the section--it only displays the full list of child (and grandchild...) pages of a given page, not the full list of pages below the chief section page, "About," above (the topmost page without a parent).

    Do you know how to get "$g_page_id" in the code above to refer to this topmost grandparent page rather than simply the current page.

    Thanks,

    Jacob

  4. moshu
    Member
    Posted 8 years ago #

    I am not a coder, sorry.
    Another option might be to use Conditional_Tags and hardcoded children_of parameter.
    Also, see the plugin mentioned in this thread:
    http://wordpress.org/support/topic/34488?replies=9
    (and the search works! :)

  5. FreeTheSlaves
    Member
    Posted 8 years ago #

    Hi moshu, thanks again for the response.

    After a bit of searching ;-) it looks like the fold pages plugin might be useful here--I'll have to make sure that it can locate the topmost ancestor of a given page to build the section sub-navs.

    If that doesn't work, I'll just create Page templates for each section, but that seems like a sloppy hack!

    Best,

    Jacob

  6. FreeTheSlaves
    Member
    Posted 8 years ago #

    I got the section sub-navs working! I'm using the Fold Pages plugin with the following code:


    // get id of current page
    $g_page_id = $wp_query->get_queried_object_id();

    // find ancestor pages
    $ancestors = _wswwpx_page_get_ancestor_ids($g_page_id);
    // find topmost ancestor
    $ancestor = reset($ancestors);

    // build args
    $args = "child_of=".$ancestor ."&sort_column=menu_order&title_li=";
    wswwpx_fold_page_list ($args, true);

    Thanks again for helping me along, moshu.

    Jacob

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags

No tags yet.