Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

User:Lastnode/Wordpress CMS

This Page is Obsolete

Since the introduction of Custom Post Types, Custom Taxonomies, and MultiSite in WordPress 3.0, the customization described below is no longer necessary to utilize WordPress's content management system (CMS) capabilities.

For examples of how others are using WordPress, take a look at the WordPress CMS showcase.

This page describes WordPress some five major versions ago, and has been nominated for deletion.

Original Page

This article is a ROUGH DRAFT. The author is still working on this document, so please do not edit this without the author's permission. The content within this article may not yet be verified or valid. This information is subject to change.

Ever since the very early releases of WordPress, users have been eager to customize the software to suit their own needs. Indeed one of the more prevalent needs in today's context is the need for content management, or more specifically, a Content Management System (CMS). With its flexibility and power, WordPress can be customized into a full fledged CMS, and many people are already doing just that.

What is a CMS?

In computing, a content management system (CMS) is a document centric collaborative application for managing documents and other content. A CMS is often a web application and often it is used as a method of managing web sites and web content.
- Wikipedia

In plain English, CMS is basically a blog on steroids. It's also more formal and usually used on bigger websites. There are a few semantic differences as well. For example, in a CMS posts are not called posts but articles. There are so many such variations and variants thereof that it's impossible to cite them all. Nevertheless, here are a few to get you going.


Pages vs. Posts

Let's begin by defining the differences and what aspects of the WordPress default functions need to be changed in order to turn WordPress into a CMS.

WordPress Pages are pseudo-static pages that work outside of the WordPress Loop. They are used to create web pages for non-changing information like contact, about, events, schedules, history, and more.

There is often a lot of confusion about these and some people believe that a CMS should use only Pages and not posts to populate the website. Posts are merely web pages that can be controlled in various ways.

On single post pages, a web page is created with a single post or article. On multi-post pages such as categories and archives, many posts or articles may be displayed. The Pages are displayed like a single post page but they do not belong to categories and remain "static" within the process of generating a page. While posts or articles may drop down the list as new information is added to a site, Pages remain accessible. In other words, they don't age.

Post summaries or excerpts and links are displayed using the WordPress Loop, but Pages links can be displayed using template tags specifically designed for them. The wp_list_pages() tags allow Pages to be displayed in the header, sidebar or footer to showcase critical informational pages on a site without creating the links manually.

By allowing the majority of the articles on a site to be used as posts and not Pages, control over what is displayed where, when, and how increases. Here are some examples:

Different Looks for Different Categories 
Need to have a different look or style for different categories? Need to have specific information on different category pages about the information categorized there? Custom Category Templates can be created to change the style and content of each specific category, or only a few categories.
Control Over Archives 
Do you need to have articles from a specific year highlighted differently from those written this year? .........more here
Control Over Individual Article/Post Styles 
While Pages can be styled different through the use of Page template files, you can style articles/posts on a per category basis or single post basis. For example, reviewing music or movies of a specific genre? You can have every post in the category for "Classical Music" have a style different from posts from the "Rock and Roll" category.
Control Over Author Pages 
Have many authors or guest authors on your site? Need a special page with bio and information about what they have written on your site? Author Templates are customizable to allow information, styles, and content to reflect the different authors or author's subject matter.

These are just a few of the ways WordPress can be customized right out of the box to become a CMS. Let's look at some examples of exactly how to go about doing these.

WordPress as a CMS

Changing WordPress into a CMS involves customizing the Theme and possibly the Administration Panels through the use of coding and WordPress Plugins. While you don't have to be an expert in XHTML, CSS, or PHP, it does help. All of the following are optional and you can use one or any combination to change WordPress into a CMS.

Chronological vs. Controlled Posting

The front page of a WordPress sites features a listing of most recent posts in chronological order. Most CMS sites need to control what articles and information appears on the front page of the site.

This is possible by hacking The_Loop in the following manner.

1. Create a template file with the name home.php (copy page.php and rename) 2. Just before the loop insert the line: query_posts(’pagename=home’) 3. Create a page with title 'home'. This is your new frontpage.

However, there are also many plugins that can make this easier for you.

Adding Multimedia

Podcasting, mobloggings (in work right now), vblogging (video blogging), and adding music and images to a CMS site.

Adding Elements

There are a variety of elements you can add to your WordPress CMS site to enhance interactivity and functions.

Mailings Lists

Signing up for mailing lists, newsletters, and information to be sent out with updates or information about the site, products, or services....suggestions, ideas.


You can set up shops in your WordPress CMS site.....

Adding Ads

Adding ads to your WordPress site maybe as simple as dropping the ad link or information into the appropriate template file or more sophisticated, like adding ads between posts or blending them into the look of your site. We will delve deep in to the intricacies of inserting ads here however, as they have been covered extensively Adding Ads to Wordpress.

Adding Forums/BBS

Adding interactivity through the use of forums or bulletin boards is one great way to foster inter-community communication. Of course, integrating them with WordPress is the best way to go, and we encourage you to use bbPress, WordPress' sister project forum software.

<List of Plugins Needed>

CMS Site Administration

Controlling User Roles

One thing you'll need to control in a CMS are your user's Roles. Multiple authors, multiple users, and multiple accounts, are just some of the things you will have to deal with in running a CMS. When securing your CMS, a great place to get started is the Restriction Plugins section. The ViewLevel2 plugin is particularly useful if you're trying to limit and control the flow of certain content.

Controlling Comments

Freedom of speech is great, as long it can be monitored. There is no such thing as a total democracy, and this, if you have not already learnt it, is something you will learn before long on the web. Before long, you'll need to use at least a few Anti Spam and Comment Moderation plugins.

CMS Site Statistics and Monitoring

Part of the fun of operating a website is getting to know your users. Although comments and discussion forums will help you get to know your more vocal readers, they will do little to tell you about the likes and dislikes of the introverts, the readers who say nothing at all.

One great way to find out more about this silent part of your readership is statistics programs. If you're hosting with any reasonable web hosting company, the chances are that you already have a statistics package. Of course, many of these packages are standalone and will not tie well in to your WordPress install.

There are however a few remedies for this. You can use Statistics Plugins to render stat tracking abilities to WordPress. The WP-ShortStat Plugin even goes all the way, encapsulating all the functionality of the fantastic ShortStat stats package in to a handy WordPress plugin.

CMS Site Maintenance

WordPress Housekeeping and WordPress Maintenance - ideas there.

Managing Internal and External Links

They say that the greatest invention of the last decade is the hyperlink. Indeed, your CMS site won't be complete without a way to handle and organize external and internal links. There are a number of WordPress Plugins that can be used for this purpose.