This is the first article in the three-part series, “The Comprehensive Guide for a Powerful CMS using WordPress”. Throughout this article, we’ll be focus on many WordPress Theme hacks, ideas, tips and useful tutorials you need to have ready in hand when developing WordPress websites.
There are some technical stuff we have to get out of the way first. Let’s take a look at useful, yet rather unknown techniques for a powerful CMS using WordPress. Each section of the article presents a suggestion and provides you with an explanation of the solution for each suggestion.
By default, a WordPress home page shows chronological blog post entries — with the most recent post at the top. If your goal is to have a WP-created Page with static information, WordPress will allow you to select a different page as your home page so that you can display more traditional content like information about yourself or your business.
In your admin area, just go to Setting » Reading. Here you can decide if your home page will display your blog posts or a static page, if you choose a static page you can also choose which page to be your home page from the select box.
First problem you may run into when you make a static page your home page is that the link to that page now appears in the main site navigation. Usually the page called “Home” in the main site navigation. This tutorial shows how to remove one of those links from your site navigation so that visitors to your site are not confused by the duplicate link.
The second problem is you will see that link again in the sidebar widget, the fix is pretty simple. The WordPress Pages navigation widget now allows you to exclude any page from its links by inserting the Page IDs of pages you want to exclude into the “Exclude” box in the Pages widget.
Darren Hoyt goes through a nice solution to help us: 1) query the page, 2) determine if there are child pages, and 3) properly highlight both the .current_page_parent and .current_page_item links.
And then he show us how to use CSS to make sure the :active and :hover states display correctly whether or not subpages exist — if they do, the primary nav uses current_page_parent, if they don’t, it resorts to simply current_page_item.
Breadcrumbs are great for so many reasons: usability, SEO, etc. In terms of plugins, there are many options, my favorite is Yoast’s Breadcrumbs, because it’s easy to implement. Another breadcrumbs plugin, gives you a new template tag called breadcrumb_trail() that you can place anywhere in your theme. Once that’s done, it’ll display a hierarchical menu of where the current visitor is on your site. It’s quite useful if you have more than a few pages or posts.
There is one big drawback to using WordPress as a CMS: the lack of custom content types/groups, an area where developers put restrictions on how clients insert content. This is fairly easy to do with some knowledge of custom fields, but can be a little complicated if your client is new to WordPress. Developers must create workarounds to keep the content clean, portable and relatively unbreakable. Darren Hoyt discussed some solutions for this issue, probably not the best solution out there but could get the job done.
Luckily, WordPress has a solution for us. Liam is using a little something called add_meta_box. This is a detailed and quite useful tutorial on creating custom write panels for the WordPress Write Post page. Custom write panels are most useful for customized installations of WordPress and could be used to add many different types of information into a post both easily and quickly.
This is is a great example of how useful and flexible Custom Fields can be in developing a full CMS with WordPress.
There are built-in actions and filter hooks that allow us to change things. Justin Tadlock is showing us how to use a simple filter to preset text in the WordPress post/page editor. This technique will work with both the visual and HTML editor. This technique might be very useful for clients who want to create a new page and not sure how to start, you can just create a demo text for them and they will just modify using your template post.
It’s as simple as that. Just a few lines of code. I added here some XHTML code so the client won’t need to do this himself.
WordPress Widgets are also known as “sidebar accessories” which are WordPress Plugins or add-ons to your WordPress blog sidebar. This could come in handy for your client, WordPress Widgets allow the easy addition of design elements, gadgets, content, images, and more to your WordPress sidebar to personalize the blog without knowing HTML, PHP, or any code.
Many themes have a widgetized sidebar or even two. But what about widgetizing your WordPress footer. Sometimes it’s a good to have widgets at the bottom of the blog for links to other posts and maybe some details about yourself. In this simple tutorial you will learn how to create 3 footer widget areas which can be edited from the admin area of your WordPress installation.
We all feel the pain of having to customize our page menus for pretty much any WordPress theme. There are several methods that people have been trying to overcome this one frustrating thing with WordPress, but the method Justin Tadlock is describing here is easy and requires little coding. Your theme needs to use the wp_page_menu() function to add its page menu so you can completely widgetize your menu.
Now, head over to the Widgets page in your WordPress admin. Select the Page Menu widget area and create your menu there using the different methods described in this great tutorial.
Page templates let you change the design and/or functionality of particular pages by using a certain template. This new Page Template will then override the default page.php Page Template included with your Theme. If you want to use another page template, simply open your Write Page admin panel » Attributes and select the template you want for that page. More details can be found here.
Here we are telling WordPress: If the post is in category ID number 13, display single13.php. If not in category ID number 13, display single1.php. Now you just create 2 new files “single13.php” & “single1.php”, and do whatever you want to do. From this, you can make as many single post page looks as you want, as long as they are styled by their category.
This technique solve the multiple categories issue (a post is included in more than one category) since it cycles through all the categories in the array and checks to see which one of them has an associated post template. When it finds one, it uses the post template file, but if it doesn’t, then it falls back on the default single.php template.
Here is an advanced tutorial for customizing your permalink structure of WP’s pages system.
Some bloggers do not want to have any category base in their Permalinks structure. WordPress does not allows you to do it. Here is how you can get it done.
Google XML Sitemaps– This plugin will create a Google sitemaps compliant XML-Sitemap of your WordPress blog. It supports all of the WordPress generated pages as well as custom ones. Everytime you edit or create a post, your sitemap is updated and all major search engines that support the sitemap protocol, like ASK.com, Google, MSN Search and YAHOO, are notified about the update.
Now you want to disable comments on your blog, go to Discussion Settings » Default article settings to disable the comments on your blog. You can also edit your single.php file and delete the code that calls the comments.php file.
Conventional ways of creating advanced pages in WordPress was to create all your XHTML/PHP/CSS in a template file and then create a page and link the two, this works, but you end up with loads of template files and editing them is a pain and not very manageable.
Exec-PHP or runPHP plugins to executes PHP code in posts, pages and text widgets.
Flutter is made precisely for CMS-making, allows you to create custom Write Panel (Posts, Pages, and Theme Options). This, basically, is a custom content type in which you can add your own fields. So, if a WordPress installation gives you two different content types (Post and Page), Flutter enables you to add more Write Panels to your likings. You can create any type of field (File Uploads, Audio, Video, Checkboxes, Dropdowns) to make as simple as possible for your client or yourself to enter content.
There are the certain points we need to think about before choosing and designing a website where WordPress will be used as the CMS. Devlounge has shared “Things To Consider When Using WordPress as a CMS“, this is a must read post for anyone thinking about using WordPress as CMS. Below you will find just few of the points, you need to check out this article to get a better understanding.
Is WordPress the correct CMS? Will it fit the needs? Is the translations available for the WordPress backend good enough? How will it be upgraded?
Will I need to extend WordPress using plugins? Are any hacks to the core necessary, because if they are, how will I make sure that these won’t break when the core is upgraded?
What types of content will there be, and what should be deemed static (i.e. use Pages), and what is flowing updates (i.e. Posts)? How will I present this, and what is the main type of content?
How will the permalink structure be? Should it really say “category”, why not “view” or “updates” or something else?
– WordPress CMS Part 2: Theme Implementation– A very detailed tutorial taking you through the steps to create your CMS featured theme.
– How to Use WordPress for a Portfolio Site – Part 1 & Part 2– Using WP for a portfolio site (primarily graphics and design-based).
Five Ways to Familiarize Clients with WordPress– What developers have tried to make their clients more comfortable with WordPress. Here’s a wrap-up of the best and most common suggestions.
Don’t mess with my Toot Toot– This is a tutorial about a plugin the author created to add a very simple new and different type of post.
Using WordPress as CMS– A series of posts on Using WordPress as a CMS – from the more theoretical to the more practical (sub)topics.
WordPress as a CMS– In this screencast, Chris Coyier shows off a number of WordPress features that make WordPress very “CMS-like”.
Please share your experience and what was the best techniques you found to be very useful when developing WordPress as a true CMS platform.
ohh yeah! exactly the information I needed.
Well I need it that’s for sure!
Great list – #3 is of particular interest to me.
For #5 about category / post templates, you might also want to take a look at Idealien Category Enhancements which I wrote. It gives the ability to select category / post templates through the admin menu like page templates. You’re no longer confined to category-##.php based naming or complex nested logic about which categories use which template.
@JamieO interesting plugin, a real time saver. I will definitely add it to the next post showcasing the best plugins in this series.
Haha, that is almost exactly what I was going to say. hahah. I would have been here all night (and they would have been working for months).
Thanks for the list! Super useful stuff.
I count there is only 10, not 101, right?
Thanks Cory, exactly what i meant.
Usually the format puts the “101” at the end of the item in question. Hence, Spanish 101 vs. 101 Spanish. That’s what was confusing about 101 Techniques instead of Techniques 101.
Wow. This is really a great list! Love it! Keep up the good work!
(101 – 1) / 10 techniques?
101e2 / 200 – 41.005 techniques?
Perfect timing! I’m investigating using WordPress as a web site option – I’ve had some artist friends ask me about creating web sites for them. The more I learn about WP, the more I realize it will work very well. Tips like these are wonderful to find since I’m just learning my way around WP. Thanks!
Great list. Can be added forum, download and directory plugs and pages.
This article come at the absolute right time for me. Gonna start using WordPress as a CMS for customers. Thanx a lot for the helpful links. You rock!
Beautiful – an amazing and timely resource, especially for those of us who don’t necessarily want to get into WPMU/Buddypress quite yet – thank you.
Sure to come in handy in the future so thanks for sharing.
Perhaps in the next part of these tutorials, you can discuss the excellent More Fields plugin, which creates Drupal-like content types in WP, for posts and/or pages and saves the hassle of adding custom fields to your posts.
You should def look into it, it’s a great addon for WP!
awesome post! a lot to try and practice.
I’m surprised you don’t mention any “performance” or security plugins. Caching, setting up multiple languages, preloading, leveraging Flickr / Picasa as Content Delivery Networks are definitelly in the list that you need to know to make WP a powerfull CMS.
The plugins post in this series will have some of these ideas, coming soon!
Useful tip. Thanks a lot !
I’ve been looking forward for this series to get started for a while now. Thanks for these tips. Looking forward to future editions.
I teach the basics of wordpress coding as a short-course so these little tips are really great for my students!
All these techniques are useless when you content manager or editor is the secretary of the boss. The most important technique is teaching the user’s how to use a CMS. Otherwise all the above will be a waste of effort.
@Tom you are right only if the secretary can’t add text in a text field.
Thank you for this great write!
I think it’s missing a bit on galleries and how to manage them, though.
Great article! WordPress can be a great CMS if you follow these techniques.
Very useful for me & other WP template creator.
Enjoyed it as much as I thought I would!
This is a great writeup. Although, do you have any tutorials on how to change permalinks from showing the ID to a pretty one? I tried to change it in the settings and all the links stopped working. So I had to revert back. Any ideas?
Could be that your hosting doesn’t support it, or WP couldn’t write/edit the .htaccess file it needs for using the permalinks.
Love the add_meta_box one. How many times have clients broken a site by trying a little too hard?!
Great article! Very informative. I will hopefully now have the information I need to start using WordPress as a CMS for my clients. Thanks!
hot damn thank you very much!
thanks for this very usefull info!
Of most interest to me is the ability to create footer widgets! I can think of all kinds of uses for that.
Another great post! Thanks a lot for sharing.
Love wordpre, thank you for the post.
Nice write-up, I still find new solutions and plugins after working with wordpress as a cms for quite some time. Glad it’s still evolving.
I am going to be the administer for my college media (newspaper/tv/radio) website next year and I demanded we switch from College Publisher to a better system.
These posts could not have come at a BETTER time. Thank you.
Some very good tricks and tips… I’ll be keeping an eye open for future posts and helpful information. Thank you.
Thanks for referencing to my post for removing category base from Permalinks.
Great article indeed! I could have used this a month ago, had to learn a lot of stuff the hard way. But it was worth it, this will serve as a good reference point for future!
Thank you for this greaaaat guide… Now the same thing i am looking for integrating an ecommerce solution. Trying to avoid the hard way. Can someone point me ?
Thats a great article, I was searching for a good quality guide for WP as a CMS.
Now, on the first step, if you have set a static page as the home page, what do you set as your post page? I mean, how to setup a posts page?
WOOOW !!! This article is awesome, so useful ! THANK YOU Noupe !
– “subscribe-to-comments” which seems to be a bit outdated (compatible up to 2.3.1) and not very intuitive.
Anyone knows a third alternative ? Thank you Guys !
Such a great tutorial! Thanks for putting this together. I’ve been using WP for a while and there are some great tricks you’ve included here. Cheers!
Wow its really amazing featured u have lots of great ideas and very useful to everyone to use it. Well done my friend.
Now I am very keen on these maps and I would like to thank you for this detailed information.You help me a lot.I so much looked at such information and I found it at last.Keep it up!
Thanks for the info on setting up WordPress as a CMS. I’ve set my page named “Home” as my static front page, but the heading on the page is now “Home” above the main text content.
How can I customize the text to be something other than “Home” for the frontpage?
Thanks for an excellent post – extremely helpful.
Wow, what a great post. Thank you so much!!
Great post, I currently use WordPress for many of my websites. I am an affiliate marketer and I need to be able to create sites quickly with minimum of fuss. WordPress is so much more than a blog, and with a little thought can be used for many other applications.
We’ve recently started implementing WordPress as a CMS for smaller clients, and these tips have proved invaluable.
A big thanks from a new noupe subscriber.
Truly useful resource! Thanks a lot.
Really nice article, i read entries blog afternoon then add it to my bookmarks and wait for your next article, i plan follow as you.
I am currently (and finally) developing my personal site and I happened to run into this post… BY FAR one of the most useful ones I have ever come across. Thank you.
Thanks noupe for this great post!
I am currently working on a site for a client using WordPress as a CMS.
The client has never used WordPress before; The preset text filter & using WPlite recommended by Five Ways to Familiarize Clients with WordPress will greatly help to provide a more intuitive experience for my client in the WordPress admin area.
I just wanted to mention it’s very disappointing to find a broken link instead of very promising article “The Comprehensive Guide for a Powerful CMS using WordPress”.
:( Can it be recovered? If it’s gone forever, what’s the reason?
this is what i need.. thanks!
How can i make custom sidebars for wordpress, so I have different images on each sidebar?
Awesome man, just what i have been looking for. Thanks for sharing.
What a great article. I thought for a while I was the only one using WordPress for CMS and having a little trouble.
I have use WordPress as CMS, this can help me for customize,.
Most of the stuff I knew was wrong. That’s what this article helped me to find out.
So useful. Thank you !
I”ll start using it right away.
Frankly speaking i never heard about Flutter and i used to code insanely but now i got a great tool for CMS. Thanks for bringing this to my attention.
This has helped me solve some niggling problems i was having, thanks.
Sorry, “>how to make your category url don’t look like they are blog categories” seems to be a dead link.
Great article. Just considering which CMS to use and this kinds of gear me towards WP. Thanks.
With the release of wordpress 3.0, more options are available on admin dashboard without tweaking any code. More and more plugins make the job without any efforts. But basic understating is must for all users who use wordpress as CMS rather than just a blog. Very useful article.
WordPress definately is more than just a blogging platform!
To increase awareness I want to showcase the power and flexibility of WordPress as a content management system by openly converting 1- 2 websites to the WordPress platform for FREE!
I’m planning to allow access to the admin pages of the themes I create so everyone can see how easy it is to use.
Awesome post. I think WordPress is ready for much more than just simple blogs.
i very like with wordpress, valid HTML..
thanks for the info. WordPress really a very powerful piece of work.
There is a nice plugin that makes using nav menus easier in wordpress 3.0, Gecka Submenu.
It can also be used to add any menu, or portions of menu in any page witch eases users navigation when using wordpress as a CMS.
I need to design several websites for different clients. I am trying to use WordPress because it appears to be the easiest for clients to utilize when wanting to make updates to their website. However, I can’t figure out how to create different websites using WordPress. Once it is downloaded it will only allow me access to the first website I am designing. So… how do I create other websites? Any help would be much appreciated.
My business is really enjoying reading your well written read. It seems like spent many time and energy in your weblog. I’ve bookmarked it i am longing for reading new article. Sustain the great work!
Nice list of basics. This would’ve been helpful when I started learning wordpress.org a few years back.
Wonderful post! GA is also my biggest earning. Nevertheless, it?€?s not a much.
Hey would you mind stating which blog platform you’re using? I’m planning to start my own blog in the near future but I’m having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your layout seems different then most blogs and I’m looking for something unique. P.S Apologies for getting off-topic but I had to ask!
Thanks for the great article, very helpful!
I’ve been looking for a tool like Flutter, which is very great, but now abandoned. The project has been picked up, however by “Magic Fields” and is being maintained much better.
Awesome article and Awesome WP.
Wordpress gives us huge flexibility to build anything.
Spend time hack wordpress and their plugins and write your own and you’ll have the site what you want. You can refer my site. I belive that I’ve managed to make optimum use of WP. lolz :D.
Please let me know some other sites if you think that are great. There is so much to learn while seeing the sites build on WP.
I read your post and I want to say that it is very good and informative. I like it and I appreciate you for your effort.Thanks.
Thank very much for such a great helpful material.
I have set up a static page for my client. He already has a theme called Diy thesis. Now the client wants me to make the static page cms friendly. She wants to change the color of the headline and also change the thumbnails. Is that possible on a static page? Thanks again.
Really great stuff and effort!
Most of the links don’t seem to work? Or is it just me?
great useful article for wp.