How to manage a dynamic multi-level page hierearchy system?

I am developing the pages/custom posts for my website, and I cannot wrap my head around exactly what I need to deliver the best solution for my users. My users in this case are editors who log in to wp-admin and manage the content of the pages/posts I have created for them. At the moment, I have a list of the pages and subpages they need, but there will come a time they need to be able to dynamically manage this by themselves (i.e. decide if a page or content is outdated, create new pages and choose if this is a parent or child to something). I have been looking at pages, custom post types, categories, taxonomies and tags to help lay the structure out but I am not completely satisfied.

So for example, let’s say I have 12 users on my site and each is responsible for managing a section about Animals so I create a custom post type for each animal (dogs, cats, birds and so on) and therefore these are contained in the left-side wp-admin menu as you’d expect. The user resposible for the Dogs section may then go in and create as many dogs as needed, and then months later, do what is necessary at the time (create, update, delete). Each individual dog (or cat or bird, etc) must be assigned to a subcategory too, these subcategories must be dynamic but relevant to its section only. So maybe the primary category is “Dog” and the subcategory is “Small sized dogs”.

On the front end of the site where the other users are actually viewing and using the content, they need to be able to navigate easily. Can I create a “Dogs” page, that gets all custom post types belonging to “Dogs” and just displays them in a list? would display a list of all the subcategories would display a list of all small-sized dogs would display the chihuahua custom post from the dogs section

Am I over-complicating this solution, or is there another way?

Read more here:: How to manage a dynamic multi-level page hierearchy system?

Leave a Reply

Your email address will not be published. Required fields are marked *