Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I've been using WordPress as a CMS for about 7 months now with the following core features:

  • Navigation Tree: Wp_list_pages for easy navigation of pages
  • Solr search engine: indexing posts only (because some pages are duplicated in the tree)
  • Pages that embed posts. Just about every page contains an embedded post. The reason is so that I can reference a post in multiple places on the Tree Navigation without having to edit each page individually.

Thus, my process for managing my CMS is to:

  1. Create a post of new content
  2. Select taxonomies (for use with Solr search filtering)
  3. Publish post. Upon publishing, a page is automatically created with the embedded post with a parent of "Standby". This saves me some time.
  4. Go to Standby to see my pending pages and organize in my tree hierarchy (via CMS Tree Page View). I will duplicate the page if I wish to have the embedded post featured in multiple places in the tree.

Does my process meet my CMS needs? Yes. Does it effectively double my MySQL data? Yes. Is a page with an embedded post the best solution to creating an effective hierarchical CMS? I'm not sure.

It would be nice to organize posts in a tree hierarchy for the convenience of site navigation on the front end, without having to create a page. It is also essential that when I edit the embedded post, all pages holding that post are updated.

Is there a better way of creating a hierarchical tree and what is the reason behind posts not being hierarchical?

share|improve this question
    
Pages, however, are hierarchical ... I don't quite understand how you're embedding posts within pages or why, so I don't understand your workflow. A concrete example of what you're doing (potentially with a link) would help. –  EAMann Jun 19 '12 at 14:27
    
It's an intranet enterprise CMS so I cannot share an example. I'm using a shortcode to embed the post content in the page so that I can go ahead and build the navigation tree. The idea is to reference pieces of content across the CMS. For example, I have a page titled "Overview of our products" that simply embeds a post of a product description. I could re-use the product description anywhere on the site simply by using the shortcode. –  AlxVallejo Jun 19 '12 at 14:33
add comment

1 Answer 1

As you're probably already aware, WordPress is designed with two main content types: Pages and Posts (see also http://en.support.wordpress.com/post-vs-page/)

The very design of Posts is to not be hierarchical. And the nature of Pages is to be hierarchical. Posts are to be part of a blog. Blogs are almost always ad-hoc in organization. Thus there needs to be many ways to navigate those posts. Plus there isn't a parent > child relationship. Each new post is considered it's own entity, though it can be tagged or categorized to create relationships with other posts.

Another way to think of it is: Posts = Blog Pages = CMS

It's important to understand that since you're using a pre-existing CMS, you are taking a Bottom Up approach. This means if the core functionality doesn't work for you, it's best to find another solution that meets your needs rather than try to hack the basic principles of a CMS that doesn't work the way you want it to.

You can create Categories to provide some pseudo-hierarchicy to posts. With some of these core concepts, it's easiest to try and use best practices. That will also create better results long-term. Making it easier to maintain, update and modify.

WordPress is also designed for SEO. I realize for an intranet that's of no use to use, but again that's what it's designed to do. Because of this, it doesn't allow you to duplicate content unless you force it to.

What I would do is:

  • Create pages as main containers of ideas and concepts
  • Link those pages to the posts (or I wouldn't even put the info in posts to begin with, but pages. For me, if it's not part of the blog, it's not a Post, it's a Page.)
  • Never link to the same content from multiple places within the main navigation.

I would only ever put the content in one place and I would organize the content so that that is the case, and that it only ends up in the navigation one time. It's okay to have a page reference other pages.

share|improve this answer
    
The core functionality works very well and the shear flexibility of the WP API means that I can do rapid development. There's little incentive to switch to ... Drupal (there's no wp_list_pages equivalent). Linking to content is a good idea and keeping a sound structure is obviously very important. Given that the objective of my CMS project is to locate answers as quickly as possible, duplicating content is , at this moment, essential. I need to read up more about why WP is designed for SEO given the perpetual state of SEO best practices, I would imagine that content remains king. –  AlxVallejo Jun 19 '12 at 16:36
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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