Simple Section Navigation

A customizable widget for for section based page navigation.

ATTENTION! This plugin is no longer actively maintained. Check out Better Section Navigation instead.

Adds a widget to your sidebar for section based navigation. Essential for CMS implementations!

The title of the widget is the top level page within the current section. Shows all page siblings (except on the top level page), all parents and grandparents (and higher), the siblings of all parents and grandparents (up to top level page), and any immediate children of the current page. Can also be called by a function inside template files.

It includes a simple widget configuration panel. From this panel you can:

  1. Determine whether the widget should appear on the home page
  2. Override standard behavior and have the widget show all pages in the current section
  3. Determine whether the widget should appear even if the section only has one page (the top level)
  4. Provide a list of pages to exclude from the output
  5. Determine whether the section navigation should still appear when viewing excluded pages
  6. Use a specific widget title (i.e. In This Section), or just use the top level page title
  7. Determine whether the section title should be linked
  8. Determine page sort order (defaults to menu order)

The widget uses standard WordPress navigation classes, in addition to a unique class around the widget, for easy styling.

ATTENTION UPGRADERS: version 2.0 represents a fundamental change to the plug-in’s architecture. Version 2 will attempt to seamlessly upgrade the old the widget, but you should document your current settings before pgrading. If you are calling it by a function in the template (not using the widget), you will be required to update your template, unless you were using the default settings. The function now has 1 parameter: arguments for the output of the widget, as detailed under installation instructions.

Compatible with WordPress MU.

Screenshot of widget output on "Open Source" page under top level page "My Portfolio", running Twenty-Ten theme

Screenshot of widget configuration.

  • Rating
  • Requires 2.8+
  • Downloads 30,679
  • Updated 2017-11-10
  1. What can I do to cause this to not display sibling pages? Other than that, this is a perfect plugin!

    • You can use CSS to selectively hide siblings… this plug-in is designed to show siblings, so there’s no option for that built in.

  2. Incredible plugin. This does everything I could have asked for with wp_list_pages, and more!

  3. It would be awesome if there was a way to control the depth of children display, so that for instance only the sub-pages of the current page you are on are displayed. Anyway- thanks for a great plugin. =)

  4. Hi there,

    Thanks for your plugin ! I was wondering what I could modify in your code to avoid the present page to be linked to itself.

    I managed to avoid the title to be linked to itself by modifying the following line :

    if ($instance[‘a_heading’]) {

    with :

    if ($instance[‘a_heading’] && $post->ID != $top_page) {

    But youre are using a filter to render children list … How can I modify it ?

    Thansk a lot for your response !

  5. any idea admin ?

  6. Hey there,
    your plugin is really awesome, it’s exactly what I was looking for!

    I came across a problem though, the navigation won’t show on post pages (the ones that use single.php aka the last ones in hierarchy).
    I use the structure Home > Categories as subsites > Post in that Category. My navigation is in the sidebar template.

    Navigation shows up on all three levels, even on all pages, except on the site of the post itself. I guess it’s because it doesn’t have any children (?).

    I’m also using BreadcrumbNavXT and Pathless Category Links, but deactivating them doesn’t change a thing.

    Help would be greatly appreciated :)

    • The plug-in is for page navigation, not category navigation.

  7. Hi Jake. This plugin is working great. Thank you!

    Is there a way to assign a shorter title for use in the navigation? Similar to how you can do that in WordPress menu manager… so that the page title can be long but then the sidebar link isn’t too long?

  8. This is working fine in terms of the pages displayed, and it appears fine on “static” pages (the them default template). But if I select a different template e.g. a page with posts I get an empty widget container, or in the case of another page with posts option (2 cols, excerpts only) I get the heading but no menu! The theme I’m using is Weaver 2.2.4, example pages are:
    working on
    select “special events” from this – not working
    select “testing different templates” – title only appearing

    Any advice appreciated

    • It sounds like the page templates are not resetting the post query ( wp_reset_query() ) after the run special queries to list the posts (etc). The plug-in depends on seeing what the “current” post ID is.

  9. hi, i have used your plugin to great effect on many sites and i truly love it. however, on my current project the widget is spitting out all pages in the section on all levels regardless which page you are on. this is a fairly large site, so i’m showing lots of unnecessary cousin pages. i’m wondering if there are any know conflicts between this plugin and others, as I think that may be where the problem lies.

    Thanks so much for your help!

    • Most definitely sounds like a conflict!

  10. WOW!!! I LUV this one too—you read my mind! Together with your Simple Page Ordering, it works great!

    I’m a code-clueless WP newbie building a pages-only site, so I’m overjoyed to find a “plug ‘n’ play” portable page-navigation widget that I can use to do what I gotta do.

    Right now, it’s in a vertical sidebar. My theme (Suffusion) also enables a “widget area above footer.” I would prefer to have it there with the links side-by-side.

    Is this option already built in? After a month-long Crash Course, I can handle a tiny bit of CSS/PHP [huh?] editing; so if you tell me what to do, I can follow your step-by-step instructions.

    Hhmmm… I may need the same “Shorter Title” option suggested by Tzaddi to make the link IDs fit where I want them to go.

    You are still on my Accounts Payable To-Do List, and I’m about to vote ****** “It Works” with Version 3.2.1 at the WP plug-in page.

  11. Hi Jake,

    I have a sub-page that I am displaying posts from a single category on. The navigation works great on all pages in this section, except I click on the page that is displaying the category posts, it switches to a the navigation for my blog sub-pages section. Is there any way to keep this navigation true to the main page and it’s children while still displaying posts from one category?

    • Does the navigation appear before or after this list?

    • the nav appears in the sidebar, so it’s called after i run the query and output the posts in the main section. I created a custom child theme based on the Boilerplate framework. Here is the page code, if this helps.

      <article id="post-” >

      ” . __( ‘Pages:’, ‘boilerplate’ ), ‘after’ => ” ) ); ?>

  12. Hi Jake,
    I noticed that this plug-in does not show private pages, even when a user is logged in and has access. Is this something that could be added? Perhaps for some dollars?

  13. I’m having a similar issue, the plugin works great, however I with there were a way to add in a display of my category pages. I have a designated News page for the blog- all good! then in the custom menu we add links for an Events (category page, not a real page.) below it. It’d be great if there were a way to tell that to display in the right place.

  14. Hi, it’s a very good plugin, exactly what I need ! But I wondered myself if it’s possible to add a special css to the page wich is visited???

  15. Great plugin, am testing it out on my site at the moment.
    Currently it is displaying formatting as per the sidebar panels, is there a setting that allows me to change this to the Vertical menu formatting?

    • That’s a styling issue (CSS in your theme), not a plug-in issue.

  16. Is there a way to make it so that the top-level navigation is displaying?

    For instance, I want to be able to make it so that if a webpage doesn’t have any sub-navigation, then it will display the top level of navigation.

    I know PHP so I will be able to edit code if I need to.


  17. What a great Plugin, really, thanks!

  18. Question – this plugin perfectly shows siblings in the 2nd level of navigation but when I move down to the 3rd level it still shows siblings of the second level

    – sub 1
    – sub 2
    – sub 2 1
    – sub 2 2

    Any way to only see sub 21 & sub 22 when on one of those pages?

    • It shouldn’t do that. Something else is probably amiss here.

  19. Hi thanks for the plugin!

    Do you know how do I do to not show(hide) home link on the widget? I’m really new on this and it might be right there but I could not find it..


  20. Hey there, great plugin. How can i make this show all top level siblings when I click into a parent page. I want all navigation to show on all pages and then when you are in say link 2’s page, it shows the sub nav if any. Thanks for any help and this is a great plugin!

Leave a Comment

Finely crafted websites & tools that make the web better.