I am trying to get feedback and ideas for solving an information architecture / content management problem using wordpress.

I have a large site ( 1,000+ pages, hundreds of posts ) made up of sections. Each section needs its own secondary navigation menu that contains both pages and custom links. This is easily done, but not necessarily easy to manage ( for non-programmers ).

Imagine this structure:

Parent 1

  • Page 1a
  • Page 1b
  • Page 1c
  • Custom Link 1d

Parent 2

  • Page 2a
  • Page 2b
  • Parent 3
    • Page 3a
    • Page 3b
    • Custom Link 3c
  • Page 2d
  • Custom Link 2e

Here are the solutions I have come up with ( and noted problems ):

  1. Create menus using the normal WP 3 + navigation system. Associate each parent page with a menu ( through a custom meta tag / taxonomy / slug / other ), then on each page grab it's parent ( if it does not have children itself ) and display the correct menu

    • Problems? Plenty! Since this is a large site, it will contain many menus making maintenance confusing.
    • Adding pages becomes a hassle - add the page, declare the correct parent page, then add the page again to the correct menu ( could be simplified by attaching this last piece programmatically to the save_page hook ).
    • What if a user adds a page and declares a parent page that does not have a menu associated with it?
    • Keeping track of the parent page - menu association will be tedious and not intuitive
  2. Use multisite - each site gets its own menu that is shown on all of the pages contained within.
    • Many issues with multisite ( plugins, server resources, etc )
    • This is really only one large site, not a network of different but interconnected sites
  3. Forgo the WP 3+ navigation system, instead create pages for ALL menu items ( including custom links ) and use a plugin / forwarding / redirect to change certain dummy pages into custom links. Use wp_list_pages to programmatically create menus based on page parent relationship
    • There will be a lot of actual pages already, adding fluff ( pages which just redirect ) to the pages list is probably not a good idea
    • Use custom post types for each section of the site, with a menu for each custom post type
    • How do we replicate the nesting shown above ( Parent 3 nested in Parent 2 )?
    • Many of the same issues as #1 above

I hope my explanation of the problem and possible solutions are clear - if not, please ask away. Otherwise, any feedback or ideas as to how to accomplish this are very welcome.

  • 2
    "I hope my explanation of the problem and possible solutions are clear" Yes they are crystal clear. But what is your question?
    – feeela
    Commented Dec 27, 2012 at 14:47
  • How would you accomplish this? 1-3? Or something I haven't thought of?
    – skim-
    Commented Dec 27, 2012 at 18:24
  • 1
    I should note that questions should have a definite question, that is answerable with a definite answer, if you're requiring opinions and generic brain storming that doesn't result in a definitive answer then perhaps a social network or a forum would be better, otherwise you need to be able to clearly and concisely state your problem. If you can't do that then you may not understand what your problem is
    – Tom J Nowell
    Commented Dec 9, 2014 at 13:20
  • 1
    Also, you need to elaborate on what you mean by secondary navigation, are we talking a side bar menu? A sub menu? A second row under the main menu? More context and information on what you currently have is necessary, including what defines a section ( a page and its descendents? Items in a sub menu? )
    – Tom J Nowell
    Commented Dec 9, 2014 at 13:23
  • @TomJNowell - this is a two year old post, but I'll be glad to elaborate as the "problem" still exists. The issue, as stated in the question, is how to handle complex site architecture and relationships in Wordpress. The context of where the menu resides is besides the point. I was hoping for a definitive answer of how to cluster different post objects in WP into sections and menus, with only a slight reliance on hierarchy within a post type. The best solution might be to use Posts 2 Posts - manually creating relationships between "posts" and turning those relationships into "menus".
    – skim-
    Commented Dec 9, 2014 at 15:26

2 Answers 2


I'd use the native WordPress custom menus mostly because they allow the admin to edit the content easily. I don't see the other solutions you propose as flexible enough for a client to use. I don't think it's possible to avoid complexity completely in this case. Better to focus on educating the client. By the way, though, you missed out the possible problem that WordPress custom menus don't replicate the actually structure of the site, so the client has to reproduce this when they add items to the menu.

  • markcbain - if using the WP 3+ menus, how would you associate a particular menu with a particular parent?
    – skim-
    Commented Dec 27, 2012 at 18:26

I would not link to single sections within a document from the main menu. I would provide a link to each document and maybe present a separate sub-menu for pages with multiple sections.

To include custom links in your menu I would create a page or some other post type document to finally be able to create the menus with the WP functions (wp_list_pages and friends). If you have hundredths of pages, you really wont administrate the menus manually. So to give a clear answer to your question: I would go with your third solution.

There are also ready plugins to manage the visibility of single pages within a generated menu or to set up the menu order and nesting. Ah, found it: I was using pageMash, which has a disclaimer now on the WP plugin site, but is still running on several of my installations with versions between 3.1 and 3.4.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.