My Latest Blog – And Complicated WordPress Theme Development

Over the weekend, I launched a new blog. Well, i say launched, it might be more accurate to say I tentatively pushed it towards the center of the lake, waiting for it to float. The reason for my self-doubt is the complexity of the theme I created.
Blog, the magazine.

The blog is all about blogging. It’s called Blog, the magazine. From now on I’ll be using it to post my ideas, guides and tutorials on blogging. I’d definitely recommend you check it out.

The Theme

About that theme I mentioned earlier. It’s by far the most complicated theme I’ve ever written, and it does things I don’t believe are currently being done with WordPress anywhere else. The main concept of the site is that it’s a magazine. Therefore, everything goes into an issue, and then the issue is release along with all the constituent parts. It’s like a real-world magazine. I shan’t go into my reasons for taking this approach here.

You’ve probably guessed that I decided to go with WordPress for the blog. It’s my platform of choice and I didn’t really consider anything else. The problem is, WordPress is built to publish a constant flow of information, not the batch releases I wanted. I also wanted each issue to have a unique image, a front page if you will, which was associated with the issue, not any post.

I decided pretty early on that each issue will be a WordPress category. I’ve been having some taxonomy conflicts since tagging was introduced, so I thought it was a safe bet to use categories in this structural way and tags for classifying content based on subject matter. The next thing to decide was how I would publish each issue. I didn’t really want to rely on myself having to post several articles at the same time, I wanted a mechanism to release issues. So I decided that each issue will have a featured post, one that has higher precedence over the other. It’s the headline story for that issue. So I wrote the front page of the theme to pick up the first featured post, and then populate the rest of the front page with posts from the same issue (read: category). So the release mechanism goes that the issue will be published when the featured article gets published. For those wondering, I just used a custom field to denote the featured articles.

Some Limitations

There are some limitations to this approach. Firstly, publishing essentially means putting the newest content on the front page. I can publish, in the traditional WordPress sense of the word, articles from any issue and they will appear on the site and in the RSS feed. The only place they don’t appear is on the front page. It is, however, very difficult to get to the content unless it’s been published to the front page at some point.

The other limitation is to do with the front page image. The image is located using the name of the current category (read: issue), so if I happen to type it wrong, or inconsistently, it will cause problems. I’ve also had to build in a mechanism to take images with different overall colour schemes. For example, white text won’t work on a predominantly light image. So there are various title images available (selected through the Theme Options page) as well as the option to show no image at all (as is the case with issue 1, as the image already contains the blog’s name).

There are other areas of the template that differ from most other WordPress templates. For example, there are numerous places images can be placed on each post that fall outside of the normal post area. I’ll be writing about some of the more technical aspects of developing the theme at a later date.

I hope this post gives you an insight into the complexity of the theme I developed for the site. You can read an introduction post right here. let me know if you like or dislike the new blog, or if you want to contribute!