
I feel like I have been promising a theme for a long time now, long in internet time anyway. It is taking longer than I thought, partly due to work commitments, so I thought I owed anyone that might be waiting an explanation of what I’m doing, and info on when bits of it will be available, so that is the point of this post.
I have never been one to make life easy on myself and so instead of just throwing together a theme I decided to take the opportunity to stretch myself as a programmer. Time will tell if that was a mistake but I do quite like the concept I have come up with.
I have seen the rise of premium themes, and the rise of themes with multiple layout and colour options and decided that there was no way I could provide everything that I think a premium (or in my case fremium) theme should have using the tools available.
What I came up with is Cheesecake.
The concept of Cheesecake is based on the dessert; it is a multi layered product with each layer achieving a different aim:
The Biscuit – This is the base, it gives the content a platform to rest on and defines the shape of the desert.
The Cheese – This is the real substance of the dessert; it provides the bulk of each dessert and gives it flavour.
The Fruit – This is the accent, the zing, and the colour. This is the cherry on the cake.
And the best part, the pattissier who combines it all together in any way you please.
If this is all sounding a tad conceptual for your tastes I don’t blame you, so here is the what it actually does.
Cheesecake is a theme within a theme. It re-creates the WordPress theme system in a way that allows each of the layers I have mentioned to be selected individually, so:
The biscuit is the layout. 1 column?, 2, 3, 4? left, right, centred, content? anything is possible provided someone has created an optional biscuit layer for you to select from.
The cheese is the layout of the content. Imagine you want a layout that contains three posts in columns with one post full width beneath it, or a single post with an image pulled from a custom field. Simply select them from the list, whether each should apply to every page, or only the home page, or only a category, or only a specific category. Anything that anyone can build and create as a cheese layer can be selected without modifying anything.
Finally the fruit. The fruit provides the colours, the graphics, and possibly some aspects of the layout. This means you can select the look separately from the layout and content layout.
So what’s the problem. Well there are a few. It works. Not everything necessary is there, but the big bits work. Unfortunately each option needs creating and I haven’t done any serious CSS or design work for a while so I am struggling a bit just to test it properly. It is a big project for me and time is proving a problem.
For the technically minded of you I have used Google Code to do it so you can get everything I have done so far from the SVN. Note however that this is a PHP 5 only project.
The Cheesecake WordPress Theme hosted at Google.

It is essential that I brush up on my CSS skills as I need a default theme for this to run just so I can start testing it properly. With that in mind, from Monday next week I will be starting a series of posts where I will create a non-cheesecake theme from scratch. This will help to focus my mind back on how to even do this, and more importantly provide some really useful information on basic theme creation for you guys in the process.
Thanks Beau,
I found out about sandbox about half way through, it seems to have a really powerful class engine for adding semantic classes.
I am hoping I won’t need that to be honest.
Wow, interesting sounding project!
I have actually been considering something quite similar by the sounds of it, which I was planning on basing on a modified version of the Sandbox theme (http://www.plaintxt.org/themes/sandbox/ — which includes some layout options via CSS), then layering on some options for re-organizing the content, and then layering CSS on top of that for pure presentation stuff.
Good luck with Cheescake, and I’ll keep an eye on it – sounds like a potentially very powerful system!