Today I have the pleasure of introducing a handful of things:
Elastic 0.0.3, a new website, and a new concept.
Theme Engine vs. Theme Framework
You might’ve noticed that we’ve started calling Elastic a “theme engine” instead of a “theme framework.” While you might say “well, it’s only one word”, that word marks both a shift in focus and a solidification in where Elastic is headed.
The difference is that a theme engine controls how the page is loaded, not how it looks.
Put simply, a theme framework is a theme that serves as a starting point for other themes.
A theme engine is a theme or plugin that changes the way WordPress renders themes. The difference is that a theme engine controls how the page is loaded, not how it looks.
While there are about seven dozen accepted definitions for “theme framework”, we decided that there is a clear difference between the two. Theme engines are a level below themes entirely. All themes run on a theme engine, framework or not.
WordPress’ default theme engine consists of the template hierarchy and a handful of other files like
For instance, you could write a theme engine that redirects every single page to the wikipedia article on Cabbage, but it wouldn’t be of much use. The Elastic theme engine is focused on creating module-based themes instead of page-based themes. “But wait”, you say,”then weren’t you a theme engine the whole time?”
Okay, so what’s changed?
The file structure. That and some bug fixes, but that’s about it. But seriously, this is huge. We’ve relocated the central library that we required every theme to include into the plugin itself. Authors don’t have to embed the engine in their themes. Instead, they load it with one line of code (
do_action('load_elastic_engine'); ) and a handful more to warn users if Elastic isn’t installed.
Distribution is where this comes into play. Now, theme structure is cleaner and themes can centrally stay up to date with the Elastic engine through the WordPress plugin repository.
The one temporary downside is this: since we’re not currently maintaining backwards compatibility, themes made with the engine may break on engine updates (and will break when 0.0.4 is released). This is why we recommend Elastic for testing purposes only.
Where we’re headed
0.0.3 is less about new features than it is about regaining our focus.
0.0.3 is less about new features than it is about regaining our focus. Elastic’s been a theme engine all along, we just didn’t know quite how to say it. This version has served as the shift to the new file structure. 0.0.4 will be about solidifying the engine and making rock solid APIs that not only support the visual editor, but theme developers as well. We’re going to be moving back towards the WordPress engine; taking the good parts (because there are quite a few of those), but maintaining our concept of modular theming.
Finally, I want to own up. I keep saying that I want your help, but it’s been hard to track me down, and hard to see where the project is going. The redesign is the first step in increasing project transparency, and will soon be joined by our own trac, documentation, and a comprehensive roadmap. If you’ve emailed me about Elastic and haven’t received a reply, I guarantee I’ll get back to you soon.
So enjoy the new site, experiment with the engine, and let me know what you’d like to see. We have a lot of changes on the horizon, so get excited. Once the engine is stable, then maybe we’ll start talking about theme frameworks. They run on theme engines, you know.
P.S.: If you’re going to WordCamp Ireland next weekend, be sure to come say hi!