My Ideal WordPress Framework104
Last week, I broke the news that we’re releasing premium WordPress themes in 2 weeks from now.
Today, I want to talk to you about the framework we’ve built for all our themes to run on (and all of your themes too!).
When I created this framework, I had very specific ideas about what I wanted. This is the framework that I would want to use, but it’s by no means perfect. Nothing is, so I’d really love to hear what you think of it at the end.
What is a Framework?
It sounds more complicated than it is. For us, a framework is simply a theme. You can activate it, save a few options and run your site solely on the framework (For anyone familiar with Thesis, that’s basically what you’re doing there).
(And naturally, every theme has to have a name; ours is called Chameleon. That little image at the top make more sense now?)
Of course, the real fun is when you start to make new themes. Every theme we offer is built on Chameleon. That means we can add advanced functionality very easily into all of our themes, and you get the same control panel across them all.
So What Would The Ideal Framework Do?
That’s the question I asked myself several months back, and here’s the answer I came up with.
The ideal framework makes building a (complex) site easier for the site owner, and easier for the developer.
The key word there? “Easier.”
How to be Easier for a Site Owner?
The tricky part of this question is that every site owner is at a different level technologically. What we’re going to do first is make a basic assumption:
Anyone willing to invest the $70 or so for a theme is interested in how their site looks.
A fair enough assumption, right? Now let’s make a second one:
Bloggers understand the “content” of their sites, much better than they understand the “design.”
By “content,” I don’t just mean the articles. I mean that they know whether their blog could do with a quick introduction paragraph. Or whether thumbnails are a good idea. Or if a “Tweet This” would go down well with their readers.
But they don’t necessarily understand why the gap between the logo and the navigation bar is the size it is. Or why the distance between paragraphs is the size that it is. Or why one column in your sidebar will work better in this theme.
That assumption was a bigger step, but still reasonable I believe. Now though, let’s finish with another rock solid one:
The simpler it is do something, the more inclined you will be to do that thing. And the happier you’ll be afterwards.
When I say “happier”, I don’t mean in the way that you feel a sense of accomplishment for doing something new and difficult. I mean the smile you get it when you think “oh, that was easier than I expected,” and the peace of mind you get from knowing you can’t possibly have done anything wrong because there was no other possible way of doing it.
Putting It Into Practice
Those are the 3 assumptions I’ve built Chameleon on. What does it all mean though?
Well, fairly obviously, it means we’re going to have a control panel. And with that control panel, you can tweak and change your theme as you see fit.
Of course, other people have made control panels already. Here’s what makes ours different:
- Simplicity is a feature. We won’t add features for the sake of it, and we’ll be more than happy to remove features we’ve already added if they aren’t being used (We have dozens of options built-in, just no useless ones hopefully!)
- No feature should require more “help” documentation than I can put beside it on the page. If it does, then I need to rethink it.
- There should be basic advice to help with decisions. This means explaining the “why” to those who want it, not just the “how.”
- Should work like regular WordPress. Chameleon has its own layout for getting all of the options in comfortably, but it still looks and feels like every other WordPress page. In short, you already know how to use it.
- The theme should work out of the box. You don’t actually need to use the options panel if you don’t want to. It will fill in all the defaults for you anyway.
- There are always going to be people who want to do more. If I put a thousand options into the panel, someone would think of a thousand and first. It’s easy to add another feature to the panel, but is it better to force an extra option into everyone’s control panel, or to teach that one person how to make their change themselves?
- Content options are more important than design. In Chameleon, you can set the order of every part of your post meta section, choose whether an author’s name should link to his site, his author page or nothing at all, and set exactly how many seconds your featured slider takes before moving on.
You can’t change your font size to 13px though. That’s because if we’ve set it to 14px, it’s because 14px was the most legible size and the most fitting for that design. If enough people want to change the font size, we’ll add in a feature to let you choose from Small, Medium or Large (Because then we can take care of the size of everything else, like headers, line-height etc. as well).
And if you’re still not happy, I’ll teach you how to do it with CSS and give you the exact line you need (Just like I said I would in point 6).
The result? This framework will let you do the vast majority of things you wanted, and it will let you do them with no fuss at all. And because it’s all so simple, you may even find yourself tweaking things you hadn’t thought of before (Like that little line of text that shows up when your post doesn’t have any comments yet?)
It won’t just throw settings at you that leave you unsure of what to do. If there’s a decision we can make for you, we’ll do it. That’s what you paid us for. Let us make things easier for you.
And if you really, really want to change something, you can. It just means treating things like a developer would.
How To Be Easier for a Developer?
The trouble with frameworks for developers is that there’s a learning curve that wasn’t there before. By nature, a framework packs in a lot more functionality so it’s laid out a little differently, which the developer won’t be used to yet.
So how do I make this worth your while?
- Complex functionality, easily. What if you could add in a featured post slider just by writing “ply_slider()”? And naturally that adds the necessary fields to the control panel as well.
- Standardize to reduce workload. When you make a theme for Chameleon, I’ll recommend that you make your sidebar 300px wide. Why? Because then the CSS I’ve already written will take care of both 1 and 2 column sidebars for you, along with the layout for all the default widgets (plus the 5 extras that Chameleon comes with). That’s a fair chunk of your work done.
- Child themes are great. Just writing “Template: Chameleon” at the top of your theme’s stylesheet means that WordPress will use Chameleon as the basis of your site. You can then make a functions.php file and tweak away. And anything you add in your stylesheet will overrule the Chameleon stylesheet.
- Learn by example. One things that holds true for a lot of developers is that they learn better by looking at something that already works. All of the themes at PliablePress are built on Chameleon. Just open one up and you’ll see how easy it was for us to make themes that are completely different, even though they all use the same framework.
- Action hooks are simpler than filters. Filters are great and let you do a lot of things that you just couldn’t with actions. But for the vast majority of tweaks, actions are all you’ll need. If I can let you make all of your changes with just actions, I’m doing pretty well.
- Answer your questions. By nature, working as a developer is more challenging. I’ll make the system as easy to use as I can, and I’ll record plenty of tutorials and write up help docs for you, but if that still doesn’t answer your questions, our forum is going to rock. Ask anything you want. We’ll work it out for you.
Want To See Chameleon Itself?
This Thursday I’m going to be sending out the first email to the PliablePress mailing list. It’s going to give you an in-depth look at Chameleon, show you the control panel and how the theme itself actually looks on a site.
If you want to see all that, just need to enter your email below (or if you’re in an RSS reader, go here).
(You’ll also get a $25 discount when we launch!)
Now it’s your turn though. Have I got the right idea for this framework? Would you prefer it let you do more? Or less? Or take a different approach altogether?
Enjoy this post? You should follow me on Twitter!