Using WordPress as a CMS
For a recent project I needed to setup an Intranet. I was hoping to find a system that would allow different departments to add and update their sections and have all of the navigation, search, etc built in. I tried out a number of content management systems, wikis, and blogging packages. None of them seemed to be a good fit. Simplicity for the editors was a key factor as was simplicity of maintenance.
To start, I spent some time on Open Source CMS playing with the various CMS tools out there. This was an a very valuable tool that made it possible to try out a number of content management systems without spending the time to install them. After playing with them, I decided to pursue installing Drupal. I installed it and played around with it for a while to get familiar with the administrative interface and more importantly, to get a feel for what the contributors would experience. I ended up frustrated with the lack of usability for contributors.
I moved on to wikis to see if one of them would fit the bill. I installed TWiki and MediaWiki to try them out. In past lives I had experienced Intranets that were not kept up to date because the editing process was poorly understood or too cumbersome (or both). From that perspective, a wiki seemed like it would be a match. Unfortunately, while very simple to keep the content up to date, none of the WYSIWYG tools provided a good enough interface for the contributors.
As one last effort to avoid using Adobe Contribute with static pages, I thought I would investigate using WordPress. A friend mentioned that he had used it for some simple sites. I really like the cleanliness of WordPress. Unfortunately, out of the box it wasn’t going to meet my needs. I did some research via Google, finding a number of people attempting to shoehorn WordPress into the role of a CMS. I found a number of blogs detailing some steps to get WordPress closer to a CMS:
- From Weblog to CMS with WordPress
- WordPress as CMS
- Feature: 5 Reasons to Use WordPress as CMS
- Five Wordpress "CMS Enabling" Plugins
From those entries I came up with the following plug-ins that seemed necessary to get what I wanted:
The final piece that made me think it would all be possible was the Xinha4WP plugin. The contributors wanted to be able to have rich editing capability and Xinha provided the support I needed. Role Manager also is a critical piece to allow each person to have the appropriate permissions for editing and adding content.
The final coup was finding a lead on the MaisonBisson blog that would allow contributors to use existing applications like ecto, MarsEdit, or Contribute to create and edit content. The post appears to focus on an older version of WordPress, but I was able to get it working with WordPress 2.1 with only the following change to the wp_get_recent_posts function in wp-includes/post.php:
Find:
$sql = "SELECT * FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC $limit";
Change to:
$sql = "SELECT * FROM $wpdb->posts WHERE post_type IN ('post', 'page') ORDER BY post_date DESC $limit";
Shazam. Now I have a solution that meets all of my requirements! Now to see if it isn’t already too late to reverse the Adobe Contribute + static pages decision that was already made.
[UPDATE] The Role Manager plugin mentioned above is not compatible with WordPress 2.1 and later. It has been updated and is now available here: http://www.im-web-gefunden.de/wordpress-plugins/role-manager/.
Comments are closed
Comments are currently closed on this entry.