Plan your WordPress site design
Figure out what sort of pages we’ll need
Before a visual design can begin, you need to do content design. Determine what exactly you’re going to say. Words, sentences and paragraphs are the building blocks of your site’s foundation. Make sure you’ve put them together correctly. And make sure you know what you need that foundation to do. I mean, think about how those words, sentences and paragraphs are going to effect your bottom line. Remember, we’re making this site for a reason. Whether it’s to get a laugh or make a buck, all those words, sentences and paragraphs need a reason for being there. They mean something.
Anyway, you’ve done all that right? We need to think about how we’re going to present that content. To put things really simply, once you know what you’re going to say with your content and what you want it to do site design comes down to designing series of page templates. That’s it really. As a practical matter, site design becomes a series of templates.
Blog design typically involves designing one template. I know good WordPress themes require a score of php templates in their respective directories but really, visually, all you’re seeing is one master template that offers up different content. Which is fine. Most blog designs serve the purposes of most blogs: highlight the latest post by placing it at the forefront of a reverse-chronological list and make it easy to find everything else. There’s a lot of different ways to do this but most blog design accomplishes this visually with one master template.
Web site design can do this too but there’s usually more variation happening between the header and footer. There’s often three or four templates that expand beyond the primary-content-sidebar mold; a home page presenting a hierarchical overview, a landing page for sales, a blog, a support forum, a store perhaps, with product pages, the list goes on. Each of these sections will need it’s own visual template and internal order that relates to the rest of the site. It all depends on the requirements of the content.
Think about why and how we’re going to use WordPress to do all this
We’ve decided that we’re going to do this with WordPress so before we start the visual design we need to consider our limitations and restrictions. We have to look at our tools.
In WordPress, we have pages and posts. Most people like to only think of pages when they consider WordPress as a content management system but posts can be categorized by tags and well, categories. We shouldn’t forget to consider how posts can be used to good advantage in WordPress.
But since likely a lot of what we’re going to do is working with pages we also need to think about what can be accomplished with custom page templates and whether or not they need to be customized further by the end user on case-by-case basis. As it is, we often have to muddle through at this point and think about compromises. Sometimes you’ll want to have a plugin solution that offers up more customization options for the end user. Often it’s going to be easier to just directly edit custom page template code to insert custom HTML as opposed to interacting with the database through WordPress.
If you’re going to need to use really custom loops and interact with the database in a way you haven’t done before now would be a good time to make sure WordPress will actually let you do what you want to do—before you go getting your wireframes and mockups set in stone. In fact, I strongly suggest you dig into what you can do with a book like WordPress Theme Design. Or search through WordPress Trac and the WordPress Hackers Mailing List if you’re planning on doing something really intense with WordPress. While you’re there try and look to the future of WordPress and make sure you’re not going to make more work for yourself down the road when WordPress changes.
I also recommend thinking about how you’re going to use Widgets in your site design. WordPress widgets offer a good way of controlling short chunks of content in a site once the coding and design has been finished and the project has been handed off. If you need more control over when and how widgets appear, the Widget Logic plugin will let you use WordPress conditional tags with individual widgets.
Design your visual templates
Now that you’ve thought about the content, what it means and how you might have to interact with it when using WordPress you actually need to get down to building your set of visual templates.
I’ve made a short list of what that set might entail.
- Home Page
- Blog Index
- Single Post with Comments & Pingbacks
- Single Page
- Archive and Search Pages
- Custom Pages
- Store and product sub pages
- Landing page with content “buckets”
- bbPress forum
- Better take a look at the default theme if you’re not that familiar with bbPress
The first thing you’ll want to do is sketch out a few designs and then move to either mocking something up in a program like Photoshop or proceeding directly to wireframing the site in XHTML and CSS. If you’ve got a good sketch and idea of what you need to do, I think proceeding directly to wireframing the site provides the best bang for your buck.
There’s two approaches to producing a wireframe when you’re going to be working with WordPress. One, you can just start writing plain old semantic HTML and start out from scratch or you can work directly with an existing WordPress Theme Framework. There’s obvious time savings when you start out with an existing theme but make sure the code of the theme is up to your standards before you start.
If you’re designing with a WordPress theme you’ll need dummy content to fill out your site. You might try WPCandy’s Sample Content or The Sandbox Dummy Content. I’m partial to The Sandbox content. It covers a lot of different possible post-content variables. But either one is great. Use the WordPress importer to import either one of these files into your WordPress blog and take a crack at making something beautiful.
Good luck!

12 Comments
Great advice, Ian. I’ve been in perpetual state of redesign at my blog for the last 6 months, and I simply can’t come up with a design strategy — mostly because I completely lack the ability to make pretty things — But for those who do actually *design WordPress sites, you’d be smart to read this article over and over.
Thanks, Nathan. I know what perpetual redesign feels like! I’ve got two half-finished WordPress themes in the can. Neither of which I’m really feeling (one of the reasons I wrote this post).
Thanks for this post Ian. I’m a beginning WordPress user/designer and I feel this will help me a lot exploring things more and better in my future use of WordPress for any project that comes up.
Also, this is my first comment although I’ve been reading ThemeShaper for a while now. I always get a blast when I see an update here XD!
It took me an embarrassingly long time to realize the importance of rigorous pre-planning. I am always chomping at the bit to get my hands dirty but I’ve come to learn that making your mistakes before you code will save you the most time in the long run.
Great article as usual, Ian.
You mention BBPress, but not SimpleForum - reason?
bbPress is moving closer to, and becoming easier to integrate with, WordPress, it’s free and open-source, it was created by Matt Mullenweg (in a weekend!), is backed by Automattic, and will soon evolve to become TalkPress.
Points taken,thanks! Is there useful noise, if wildly speculative, about how TalkPress will extend BBPress?
No noise yet, that I’ve heard. But bbPress 1.0 should be out in a few months.
I’m a huge believer in using WordPress for a CMS system, thanks for writing a great article focusing on this!
I have been following this website for some time, it is a great source of info! I am currently building a local association’s website using Wordpress and the amazing Revolution wordpress themes. Wordpress is such an amazingly flexible solution that with the addition of a few plugins here and there can turn it into something very powerful. I am also re-designing my old mobile disco website using Wordpress and the Freshy 2.0 theme along with a handful of handy plugins. You can see this here…
http://www.produbdj.co.uk - The navigation is built using Pages with the “html on pages” plugin by Introsites. There’s all sorts of other SEO stuff going on as well.
Great post, Ian. And timely, to boot.
I have come back to Wordpress after a few years hiatus and I am currently working on a site for a non-profit. I think it is really going to help them, and I will be using Thematic as a basis for the theme. Thanks for your hard work.
I have an interesting conundrum and maybe I am overthinking things here. This NGO has a variety of relief and development projects around the world, and I am considering making separate pages for each one. These pages will contain all of the general information about the projects.
In addition, I want to set things up so that staff can post news items relating to each project. Naturally I want to associate each of these news items with the relevant project(“for more information about this project…”) and vice versa (“Recent News Items About This Project”). Is there a good way to associate pages with posts? I have been trying, but most of my attempts seem pretty clumsy.
Would it be better to just have each general project page be a post instead? And then associate the posts by category?
I know this problem is probably fairly simple, but I have banging my head all week trying to figure out the most robust way to do this. It is essentially the main problem that I face as I am attempting use Wordpress as a CMS.
I use it as a CMS on at least two sites and it seems to work great so far. The oldest is over two years old, and i was just testing it out when i first tried it.
5 Trackbacks
[…] WordPress as a CMS: How To Think About Building a Website With WordPress This is short and easy to see whole picture […]
[…] has been a lot of buzz regarding using WordPress as a CMS lately, with many clever solutions that come up. Today, […]
[…] WordPress as a CMS: How To Think About Building a Website With WordPress […]
[…] on ThemeShaper: WordPress as a CMS: How To Think About Building a Website With WordPress « 2006 Terra Barossa […]
[…] WordPress as a CMS: How To Think About Building a Website With WordPress […]