WordPress is one of the CMSs available on the market, but has its share of limitations. Unfortunately one of the biggest limitations is on the area where it stops being a blogging platform and you use it as a CMS.
The main difference between blogging and CMS is the first is focused on posts (time based articles) while the later focuses on pages (generic articles that are no time dependent).
WordPress has been built and in it is being built with a fairly limited number of pages in mind (Contact/About etc). With a standard installation you can go to an apx 5-10 of pages and if you use custom menus and dropdown menus is ok to go up to 25-30 pages (5 main pages each with 5 subpages).
But what do you do when you have, let’s say 300 static pages? The first answer will be: who needs 300 pages in a CMS? Well, on an academic website you can reach that number very easy. There are a lot of programs, departments, classes and staff and posts (or custom posts) are not the solution.
For this type of project I used a 3 columns theme and i wanted a simple feature: have one main menu on a column, and on a second column show subpages, but only when available. For a few years I have used a unupgraded version of GD Navigator. Once I have upgraded both the WP and the plugin a few errors started to appear: the GD Navigator widget was gone and when I have re-added it, no matter of the configuration random subpages kept appearing.
The best solution for WordPress Submenu Widget
Looking for an alternative wasn’t an easy job, most of the alternatives being either dead or too complicated. Finally I have found the simplest, working plugin, BE Subpages Widget by WP Consultant Bill Erickson . The plugin is extremely easy to use and has only two options:
- Title – this one is optional and I don’t recommend you to use it. Basically you could put in there something like “Submenu”
- Use top level page as section title. – Check this instead of using a title. It will show the parent page and can be used as a breadcrumb
- Make title a link – Also check this to make the parent page act as a true breadcrumb
There. Problem solved. A working implementation you can see over here