Better Section Navigation Widget

Description

Adds a new widget type you can deploy in your sidebar regions (and/or elsewhere) to display section-based navigation.

The title of the widget is the top level page within the current section. The widget then can show all of the page’s published 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. It 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.

Compatible with WordPress Multisite.

This plugin started life as Simple Section Navigation Widget, but since that plugin hasn’t been updated in a while, we’ve taken up the reins with the goal of keeping it up to date with the latest WordPress conventions (i.e. getting rid of deprecation warnings) and adding a few nice-to-have features while retaining the simplicity of the original plugin.

Screenshots

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

Installation

  1. Install easily with the WordPress plugin control panel or manually download the plugin and upload the extracted folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Widget users can add it to the sidebar by going to the “Widgets” menu under “Appearance” and adding the “Better Section Navigation” widget. Open the widget to configure.
  4. Template authors can call the navigation by using the better_section_nav function. The function accepts a single argument in the form of a classic WordPress set of parameters.
  5. Users who want to display section navigation without adding a widget or editing a template can use the [better-section-nav] shortcode.

Parameters

  • show_all – Always show all pages in current section (default: false)
  • exclude – Page IDs, seperated by commas, of pages to exclude (default: ”)
  • hide_on_excluded – No navigation on excluded pages (default: true)
  • show_on_home – Show top level page list on home page (default: false)
  • show_empty – Output even if empty section (default: false)
  • sort_by – Page sort order; can use any WordPress page list sort value (default: menu_order)
  • title – Provide a specific widget title; default is the top level page title
  • a_heading – Show all pages in section (default: false)
  • before_widget – HTML before widget (default: <div>)
  • after_widget – HTML after widget (default: </div>)
  • before_title – HTML before widget (default: <h2 class="widgettitle">)
  • after_title – HTML after widget (default: </h2>)

Example

The following example will wrap the widget in LI tags, exclude page ID 2, and will output on home page.

PHP function / template tag (use this in template files):

<?php better_section_nav('before_widget=<li>&after_widget=</li>&exclude=2&show_on_home=1'); ?>

Shortcode (use this within the body of a Post/Page):

[better-section-nav before_widget="<li>" after_widget="</li>" exclude="2" show_on_home="1"]

FAQ

Installation Instructions
  1. Install easily with the WordPress plugin control panel or manually download the plugin and upload the extracted folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Widget users can add it to the sidebar by going to the “Widgets” menu under “Appearance” and adding the “Better Section Navigation” widget. Open the widget to configure.
  4. Template authors can call the navigation by using the better_section_nav function. The function accepts a single argument in the form of a classic WordPress set of parameters.
  5. Users who want to display section navigation without adding a widget or editing a template can use the [better-section-nav] shortcode.

Parameters

  • show_all – Always show all pages in current section (default: false)
  • exclude – Page IDs, seperated by commas, of pages to exclude (default: ”)
  • hide_on_excluded – No navigation on excluded pages (default: true)
  • show_on_home – Show top level page list on home page (default: false)
  • show_empty – Output even if empty section (default: false)
  • sort_by – Page sort order; can use any WordPress page list sort value (default: menu_order)
  • title – Provide a specific widget title; default is the top level page title
  • a_heading – Show all pages in section (default: false)
  • before_widget – HTML before widget (default: <div>)
  • after_widget – HTML after widget (default: </div>)
  • before_title – HTML before widget (default: <h2 class="widgettitle">)
  • after_title – HTML after widget (default: </h2>)

Example

The following example will wrap the widget in LI tags, exclude page ID 2, and will output on home page.

PHP function / template tag (use this in template files):

<?php better_section_nav('before_widget=<li>&after_widget=</li>&exclude=2&show_on_home=1'); ?>

Shortcode (use this within the body of a Post/Page):

[better-section-nav before_widget="<li>" after_widget="</li>" exclude="2" show_on_home="1"]

Contributors & Developers

“Better Section Navigation Widget” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0

  • Forked from (Simple Section Navigation Widget)[https://wordpress.org/plugins/simple-section-navigation/].
    See that plugin’s changelog for earlier changes.
  • Cleaned up deprecated function calls.
  • Added a shortcode to allow users to display the section nav widget without
    editing any template files.