A Look into the World’s Most Popular Theme Frameworks

19 Comments

How to Create Your Own WordPress Theme Framework, part 2

Now that we’ve realized the value of building your own theme framework it’s time to start building it. The best laid plans a happy framework make, so we’re going to start this the smart way. What are the frameworks of today, and how can we learn from them?

I’d like to take this quick second to praise each of these developers for doing what they do, and for supporting the GPL. By embracing open source (and no doubt being embraced back, but I’m not talking) they’ve made our review session here possible. You all rock.

Now, let’s go steal some of their work and improve it.

Sandbox

by Andy Skelton/Scott Wallick

Sandbox Theme Framework

I will say that Sandbox, above all, has a special place with me. It was the first theme I ever used to build another theme, before I even knew to call it a “framework.”

As far as frameworks go, this one should be considered one of the grandaddies. The theme itself comes with a folder of tiny CSS files, each of which when linked will turn the layout into what it describes. This is a clever way to include different layout options without bloating any of our CSS, the only downside being that it means we have to include another file.

Sandbox is built with beautiful XHTML markup and awesomely relevant classes in divs and lis. In fact, probably my favorite part of Sandbox is how it generates classes in the body and post divs. Check it out.

The body tag:

<body class="wordpress y2009 m06 d24 h12 home blog">

The div surrounding the post:

<div id="post-38" class="hentry p1 post publish author-john-doe category-pater-semper-incertus-est tag-bacon tag-big-blue-car tag-dog tag-evil-man tag-foo-bar tag-old-yellow-house tag-turnkey tag-under-the-table tag-ur-kewl tag-vicecory-of-india y2008 m03 d28 h00">

Sandbox code

If you’ve ever worked with HTML and CSS before, then you should get excited when you see relevant classes like that. Not only do we get awesome stuff like the current date down to the hour in the body and the date of the post in the div, every piece of meta information you attach to your post will show up there as well. The implications of this are limitless, really. Want your site to change its background color or gradient based on the time of day? Easy, just use body.h00, body.h01, etc to change it at each hour.

The <?php sandbox_body_class(); ?> function in functions.php gives the body its swagger, and the <?php sandbox_post_class() ?> does the same for the post div.

Upsides to Sandbox
  • Relevant and useful classes throughout the theme elements
  • Restructured listing of pages (the <?php sandbox_globalnav(); ?> function)
  • Different CSS files for various site layouts (1c-b.css, 2c-l.css, 3c-r.css, etc)
  • Solid example of a readme.html file

Carrington

by Alex King

Carrington Theme Framework

If any theme we’re looking at deserves the “arrived ahead of its time” award, Carrington would be it. The standard reaction to Carrington tends to be somewhere in between “huh, that’s interesting” and “whuh?”. That makes it very interesting to me.

It doesn’t say anything negative about Carrington that some developers aren’t ready for something like this. Most developers are looking for a machete to clear the brush. Carrington is like an army of chainsaw wielding ninjas.

“Most developers are looking for a machete to clear the brush. Carrington is like an army of chainsaw wielding ninjas.”

Abstraction is a word to use when describing Carrington. Using functions from within WordPress like is_home() and is_single(), Carrington chooses the particular context to deal up a unique template for each situation. So you’ll find a lot of folders within this framework that you won’t with others, making it simple to dish out specific post, sidebar, and comment templates, to name a few.

Carrington is one of those themes you’ll have to really poke around in before you’ll have any idea what it is about. Odds are it won’t be the first framework anyone uses, but it’s one that anyone interested should check out. While we may not be pulling anything specific out of this one to improve upon in ours, we’ll definitely keep it in mind as an ideal concept on the horizon.

Upsides to Carrington
  • Abstraction of templates to an atomic level
  • Readme files in every folder
  • Optional AJAX loading of posts and comments from any page

Thematic

by Ian Stewart

Thematic Theme Framework

When it comes to popular theme frameworks, Thematic takes the cake. With a thriving support forum, a growing gallery of child themes, and glowing reviews from the WordPress elite like WPCandy and Adii, WordPress is all a buzz about Thematic. So Ian must be doing something right.

One thing that stands out about Thematic is the prevalence of widgets. For the most part WordPress themes will utilize the widgets strictly for sidebars. But since widgets are the third of only three content placement options within WordPress right now (the other two being posts and pages) some theme authors are beginning to place widget ready areas in places other than sidebars. Thematic is one of these, with ten widget ready areas places throughout the theme’s structure.

Thematic code

Thematic is also the first theme we’ve looked at so far that makes use of a theme options page. Theme options are a touchy subject when it comes to frameworks, since any options will need to be generalized enough to work with any theme or child theme relying on it. Thematic keeps in simple, only saving the most basic information that would be usable on just about any site or theme.

Thematic also makes heavy use of hooks. Even if you’ve never taken advantage of a custom hook before, you’ve used them in your theme whether you know it or not. The standard <?php wp_head(); ?> and <?php wp_footer(); ?> are necessary in every WordPress theme, as they are used by Plugins for pulling in its own PHP. The trick is, you can include your own hooks for others to use. If you are building a theme framework, including a multitude of hooks can make it that much easier for developers to add their own code to your themes using their functions.php file.

We’ll definitely want to include custom hooks in our framework. More on that later.

Upsides to Thematic
  • Language independent (see the /library/languages folder)
  • Prevalence of widgets all over the place
  • Hooks for the easy addition of theme elements

Hybrid Theme

by Justin Tadlock

Theme Hybrid Framework

Hybrid does a lot of great things that the themes we’ve talked about above have done also. Awesome XHTML and the custom functions are great. So let’s talk about what Hybrid does that the rest of these doesn’t do.

WordPress looks for the right template based on a hierarchy. It will start looking for more specific template files, go less specific, and then always rely on index.php if nothing else is there. Hyrbid adds a bit more fun to the equation. For archive pages, Hybrid has added in archive templates for lists of posts by month (month.php), by day (day.php), and even by the hour (hour.php) and the minute (minute.php).

“I’m not going to say that having a lot of template files will work for your theme better or worse… That’s something you have to decide for yourself.”

The attachment templates are far more interesting. audio.php works for audio file attachments, image.php for images, and text.php for text files.

Hybrid also includes a number of useful templates for different purposes, which not every framework does. biography.php is for listing author information aside from the normal author.php file, logged-in.php will protect a page for only logged in users, and sitemap.php for displaying the sitemap.

Hybrid has by far the highest number of template files of any of the frameworks we’re looking at here. I’m not going to say that having a lot of template files will necessarily work for your theme better or worse than having fewer. That’s something you have to decide for your own framework.

Upsides to Hybrid
  • Specific attachment templates based on file type and archive templates down to the day and hour
  • Templates for logged in users
  • Widgets all over the place, like every great theme

Okay, so what?

We’ve looked at a few of the most popular theme frameworks that are out there right now. For the sake of not writing a book on the topic, we’ll stop with these and try to summarize our findings.

Widgets work everywhere. The easier it is to add content all over our themes, the better. Widgets are flexible, and there’s no limit to how we can use them. So let’s make sure our framework doesn’t skimp on them.

Atomic templates are the future. Carrington in particular shows us the possibility behind truly atomic theme templates. While going as far as Alex King has may not be useful for us at this point, let’s see just how far it makes sense to take it.

Theme options work, but only a little. We have to remember that any themes built using ours will also be using our theme options, so the more general they are the better.

Hooks aren’t just for Peter Pan. If we’re smart enough to include theme hooks in all of the right places, additions to the theme in the future will be simple and pain free. Let’s also stick to the suggested (by a user, keep in mind) standardized hooks thought up by Dan Cole. More on that soon.

Readme files a happy user make. The one thing present among each of these frameworks is a solid system of documentation. Readme files within the theme folder (sometimes within the folder’s folders) and online support all play a major role in the success of the themes we’ve looked at. We’ll have to be prepared for the same sort of thing, if we follow through with making our framework public.

It seems we have a few goals to keep in mind now. And remember, since we don’t want to be a GPL douchebag, we’re going to treat this as our own project and not just rip off any of these fine gentlemen’s work. This is for learning, not for stealing.

Next we’ll think through our theme’s structure and the files we want to account for, and start chipping away.

19 thoughts on “A Look into the World’s Most Popular Theme Frameworks

    • I don’t know, there are quite a few working with frameworks other than Thesis. That’s not anything against the quality of Thesis, or Chris, or anything like that. But different people use different things. Everyone has to find something that works for them.

    • I agree with Ryan. None of the above are obsolete or irrelevant. I’d personally never use Thesis.

      That’s not to say it’s bad or that Chris isn’t a smart and talented developer. He most certainly is.

      There’s just no need for douchey fanboyism.

    • Great post Ryan, but I still can’t wait for the “Creating your own Theme Framework” part 😉

      Oh and Thesis, I never liked that.
      K.

    • scott… you have no idea what you are talking about..

      thesis theme is WORTHLESS… if you WASTED 80 for it, then that is your problem… learn to code a decent theme and you wont have to pay some guy to make a WORTHLESS theme like thesis…

      • Anti Chris:
        I understand your frustration. Yes, Thesis costs money. The deal is that neither you nor I could ever code as solid of a theme as Thesis. It certainly isn’t worthless. Whether or not you like it, Thesis is better than anything you or I have ever, or will ever make. Btw, what is your amazing contribution to the theme world? Also, your ad hominem attacks are as silly as your contempt for Thesis. You just sound like a fool. Your claim lacks evidence, intelligence and respect. When you grow up, come back and have a discussion.

        jdbentley:
        seriously? douchey fanboyism? Is that what YOU call liking a product? I would apply that same term to GPL extremists like yourself. What is your problem with Thesis? Do you hate it because it isn’t free? Thesis is the most flexible, intelligent theme ever. Show me what you have done that is so much better than Thesis. I don’t intend to overly belittle you or your work, but it is obvious you have never even given Thesis a chance. Perhaps you should go by the motto of “don’t knock it ’til you try it.”

        kovshenin:
        Why do you dislike Thesis? For the sole fact that you decided to dislike it? Or, because of some underlying jealousy?

        • scott you have no idea what you are talking about… you don’t even know me.

          you sound like someone who has no idea how to move a mouse, lol.. what a clueless ignorant boy…

          thesis at itself is a piece of worthless stuff.. if you bought it for 80 bucks must be stupid.. lol..

          learn soem php and then come back dude.. u have no idea how to install wordpress..

          chris lover… just wondering why u take the time to deffend chris.. just wondering.. strange… very strange.

          bye idiot.

          • Anti:
            Listen to yourself, sir. No, I’m not Chris Pearson. This is very out of character for me to speak so vehemently for or against anything of this nature. You and I both know (at least I know) that this argument has nothing to do with Chris Pearson or Thesis. It boils down to hacks who believe they are coding gods trying to rewrite the books on economics and copyright law. I care about this issue because the more I learn about GPL and its supporters, the more I realize none of them even understand what it is or what it does. Most of them don’t know why they support the GPL other than it makes things free (so they think). If I had to guess, maybe 5% have read it. Of that group I would be shocked if half of them understood it. I think if one wants to give away their work, then so be it. But one’s work (and as a consequence, oneself) shouldn’t be crucified on licensing grounds. I guess I’m just having a hard time understanding why so many people support a cause they don’t know the first thing about. Is it as simple as money? Do people support the GPL because they perceive it as making things free?

            Also, why are YOU so interested in Pearson, Anti? You come off as an obsessed stalker type. Heck, you even use his name. I have the cojones to use my actual name. Additionally, consider toning down the hate rhetoric and having a civil discussion with me, please. I want to know what the advantages are to releasing anything under the GPL. Does anyone have an answer for that? Does anyone have an answer that is something more than a flaccid attempt at bullying?

        • you quoted everyone and then give Cheap Thesis propaganda…

          why do you care dude?? are you chris pearson?? strange… come out of the closet, idiot..

          there a trillion of themes better than thesis.. and FREE…!!!

          i tried thesis.. of course got it free from the swedish site.. and guess what??

          yes.. it has a LOT of bugs..

          and if you pay me 10,000 bucks i will list those bugs here.. i wont do it for free.. since the guy already does 50,000 dollars per month selling his theme.

    • @Scott and @Anti Chris:

      I’m more than happy you guys are using Theme Playground to work out your differences. But if you could, move this discussion over into the forum, where it’s a bit easier to have a back and forth discussion. Besides, Thesis isn’t at all the point of this post, at all.

      I’ll let these comments stay in place, but if you keep going back and forth I’m going to be forced to start deleting them. Head to the forum please.

      Thanks.

  1. Nice series you’ve got going here. Definitely interested in the following articles. I’ve had a framework (sort of) for wordpress themes I wrote a while ago, but I haven’t updated it in so long that I feel like its a bit obsolete now and I need to write a new one. This series should get me off my ass to do so 🙂

  2. Ryan, Good post – but I’d love to see the “other” popular frameworks listed here. Ptah’s “WP Framework”, and Zyml’s “The Buffet Framework” are noticeably missing.

    I’d guess if they’re good enough to be included on the Codex (http://codex.wordpress.org/Theme_Frameworks), they might be considered, well… “popular” 🙂

    thx!

    • Thanks Kel, I’m glad you liked it.

      I’m definitely aware of the other frameworks out there, and they are solid too. But including all of them would have been another two or three thousand words, and the odds of gleaning any valuable lessons from them would have lessened. There are definitely solid lists of frameworks out there already. Heck, you linked to one in your comment 🙂

  3. Of the frameworks you mentioned, the only one I’ve used is Hybrid (on My Social Buttons). Like everything Justin puts out, it’s awesome. One of the many page templates it has a widget page, in which the whole page is widget areas- very cool.

    I think there is a fine line to walk with developing frameworks. They need to retain some flexibility, and not be too overdone so that they’re very difficult to customize.

  4. Pingback: Theme Playground | Crafting Your Theme Framework’s Structure and Layout

  5. Pingback: WordPress Theme beginner? Begin met WordPress Frameworks : WordPress Dimensie

  6. I like to learn and modify, whoever as I tried on my demo blog last week over 26 framework themes I did found that having a theme is one thing. Be able to learn step by step how to modify, create child is another. For such task is indispensable support forum of users and developers. I may be wrong but from 26 themes I found only one which offer free support forum. Atahualpa.
    What does it mean in great part is that for example I like hybrid, thesis, carrington, ashford; but unless I can understand clearly why, how and where to add css or php code to produce result I want, I am not learning. I am stuck.
    By the way I found that having a good theme is just one part of story, the other part is using it well.
    My criterium is load time < 5 seconds, validation, websiteoptimization, be able to download it from wordpress.org/extend/themes and support forum.

Comments are closed.