Home » Documentation » Other WordPress plugins » Site Navigation

Site Navigation

IMPORTANT: The older CMS Navigation plugin has been deprecated in favor of the WPML plugin.

WPML CMS navigation includes:

  • Top navigation with top level pages and post categories including drop down items
  • Breadcrumb trail – showing where the current page is located in the website
  • Sidebar navigation – showing pages related to the one shown

Top Navigation

Drop down menu customization tool

The top navigation includes items for pages with no parent and post categories. No configuration is required.

You can style the top navigation bar using our drop down menu CSS generator. It allows styling the menu visually and creates the CSS code that needs to be added to your stylesheet file.

Breadcrumb Trail Navigation

This gives a trace going from the current page all the way up to the home page. For posts, it displays the post’s category. For pages, it goes up to the posts parents until the home page is reached.

This lets users see where they are in the website for every page they visit.

Sidebar Navigation

This creates local navigation for mini-sites inside the complete website. Let’s start with an example.

A few pages for a hotel will make up a mini-website. The structure will be:

  • Hotel Bella Vista
    • Rooms
    • Guest services
    • How to get there
    • Rates
    • Golf
    • Fishing
    • Ski classes

All the information pages are children of the hotel’s home – “Hotel Bella Vista”.

Grouping elements in sub-sections

We also want to make sub-sections, to make internal pages group easier. We want it to appear like this:

Hotel Bella Vista

Guest information (not a link!)

  • Rooms
  • Guest services
  • How to get there
  • Rates

Activities (not a link!)

  • Golf
  • Fishing
  • Ski classes

There will be no page such as ‘Guest information’ or ‘Activities’. These are just custom fields added to the child pages.

In order to build such a menu, we will need to know:

  1. Which is the home for the mini-site (in this case, ‘Hotel Bella Vista’).
  2. How the child elements are grouped
Mini home and sections

Mini home and sections

To tell the plugin that elements should be grouped together set the Section (in the CMS Navigation) for each child page. In this example above, Rooms, Guest services, How to get there and Rates all have the Section set to Guest information. The rest of the pages Golf, Fishing and Ski classes have Section set to Activities. This is optional. If not specified, the child page will not be grouped with others, but will still be listed.

WPML home page includes two section: Design Ideas and Get in touch.

Breaking large page hierarchies to smaller ones

By default, the left navigation tree will recursively scan all pages and include them. You can break it up into smaller trees. The advantages would be:

  • Less clutter and easier navigation
  • Only relevant pages can be displayed

To indicate that the plugin should not display the child elements of a page, select the ‘Mini home‘ checkbox in the CMS Navigation section.

The plugin will then include the page with this field, but not its child pages. Instead, when the page marked as Mini home is displayed, it’s child pages are included, but the parent pages are not. This enables you to include many mini sites in one large site.

For example, the getting started guide, in this website, is marked as a mini home. When you visit it, you don’t see the parent page in the sidebar navigation. Also, the child pages of that page don’t appear in the sidebar, when viewing the home page.

How to add the navigation elements to your WordPress theme

For information on how to add WPML navigation elements to your theme, go to the navigation section of the getting started guide.

Stuff we’re going to add

Here is a list of things we know this plugin needs to do, but haven’t yet implemented.

Feature Description Status
Management screen Provide AJAX interface that controls the way pages are organized.

  • Set the mini-home and sub-sections.
  • Control page order
  • Excluded pages
Done
Exclude pages Remove some pages from the tree navigation and drop-down menus. Done
Handle “page as homepage” and blog page. Handle this special case correctly in:

  • Breadcrumbs navigation
  • Sidebar navigation

There are some things that need to be done:

  • Make sure that the ‘news’ page goes to the static ‘blog’ page in case it’s assigned.
  • Make sure that the trail navigation doesn’t double list the static home page in case one is assigned.
  • When there is a ‘blog’, the trail navigation for the news page needs to point to it and not to the home page.
Done
Allow customizing home page and categories This would best be implemented simply in the function call (no admins screen).

  • Explicitly specify the ‘news’ page path.
Done
Fix drop down menus functionality for IE6 It works OK for Firefox, IE7 and other browsers but not IE6 Done
Auto adjust page order Automatically set the page order variables in all pages so that it will fit the current order of pages. This will work well with the AJAX page order control. Done

144 Responses to “Site Navigation”

  1. Degbevi says:

    I’m traying the multilanguage plugins which is very nice but my problem is: How can I make the language selector displayed in the header (ex: bar1) insted of in widget?

    Thanx again

  2. Mike Biocchi says:

    I have made 2 pages, one is static and the other has posts. The one with posts is called Blog (a new page I made)

    However, the Blog page will not show up in the cms navigation. However, when I go into wordpress settings and into reading and I change the post page to nothing, the Blog link shows up, however it does not work as a blog as the posts do not go there. If I go to the link manually it works.

    Any suggestions?

    Mike

  3. [...] CMS Navi Plugin- Verwaltungsvereinfachung. [...]

  4. DBC says:

    *** ERROR IN THIS PARAGRAPH ****

    To tell the plugin that elements should be grouped together set the Section (in the CMS Navigation) for each child page. In this example above, Rooms, Guest services, How to get there and Rates all have the Section set to Guest information. The rest of the pages Golf, Fishing and Ski classes have Section set to Guest information. This is optional. If not specified, the child page will not be grouped with others, but will still be listed.

    Should be

    The rest of the pages Golf, Fishing and Ski classes have Section set to _Activities_.

  5. Umut says:

    Great work you guys do!
    I have just one question. I have my own css and js that does the menu formating, and I have noticed that the plugin loads its own css and js for these from loading. I like to disable this but how?

  6. Amir says:

    Thanks. Are you using it live on your site? If so, where?

  7. Amir says:

    I think we should add this to the plugin requirements page on WP. I’m adding it here now.

  8. Amir says:

    It matters (a lot). Where you place that code in the header.php file will determine where it will be rendered (displayed). If you include the contents of your header.php file here, I’ll be able to tell you where to insert it.

  9. Amir says:

    The HTML is there, but not in the right place. It would display better if you place it right after the closing </div> for <div id=”menu”> in your header.php file.

  10. Amir says:

    Your site has several critical HTML errors. If you’re using Firefox, you can use HTML Validator to spot and clean them.

    The site will look much more consistent when it doesn’t have HTML errors.

  11. Amir says:

    Hi Kevin,

    Are you running on PHP4? For some reason, WordPress doesn’t provide the path up the hierarchy when running on PHP4. Other than this, the CMS navigation functions work the same between WP on PHP4 and WP on PHP5.

  12. Amir says:

    1) We’re working on a new version for this plugin which will support static home and blog pages. It should be available very soon. Once this is ready, you can use this guide for setting WP home and blog pages and it will work just fine.

    2) To make links more obvious (“client doesn’t think people will click on the top level when they see subsections”) keep those links with underlines – just like the default link formatting. You can see how we’ve styled it here.

    Scroll to the top and you’ll see the heading “WordPress CMS Plugins” with an underline. It’s pretty obvious that this is a link.

  13. sc says:

    not working in ie7 either.
    top level shows and works – without submenus

  14. sc says:

    Can’t upgrade too many clients still using IE6 – I need it for testing.
    Tried it on a PC with IE7 and it didn’t work for me. But since so many corporations don’t upgrade I have to test to find out what issues they are encountering.

  15. Amir says:

    Just added this functionality in version 1.2.1. The plugin now works correctly when the home page and blog pages are set.

  16. Amir says:

    You’re right about not working properly in IE6. I’m adding this to our todo list. Thanks.

  17. Amir says:

    Hi Ermes,

    When you say you have more pages, do you mean that they are child pages of the 2nd level menu?
    If so, the plugin will not display them. Instead, you should use the sidebar navigation. It makes it much easier for your visitors to navigate further.

    We’re using the sidebar navigation in the site and in Baripedia.

    If you meant for something else, let me know.

  18. admin says:

    Hi Steve,

    Next week we’re releasing a new version of CMS Navigation which will support IE6 (which did take quite a bit of time to implement).

    Next, we’ll be all over the management screen. Page exclusion will be a part of this.

    If you want to help, advertise us. Tell people about this site and the plugins.

  19. admin says:

    We thought about that, but then saw that it just looks bad. WP chooses the 1st category as the ‘parent’ for posts and we follow this.

  20. Brian says:

    Have tried this with IE6 and still have same problem. Parent-only menu items jump to about 200px high and similar width. So the page width is pushed to about 1700px.

    Parent-child items appear with the text of the child on top of the parent, but then they do highlight correctly and drop down correctly on hover. Have tried this with a custom theme and also just in the standard WP default theme with same result.

    Sorry but the site is under development so can’t post a URL as yet.

    All looks great with IE7/Firefox2/Firefox3/Opera9/Camino/Netscape/Safari.

    Thanks

  21. Andreas says:

    Hello,

    first I think at the moment it ist the best menu with dorp-down funcionaltity.
    But I have the same problem with the ie6.

    Any hints or solutions available?

    Andreas