Handling complex multi-level architecture / menu for large site

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 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.

Leave a Comment