Why WordPress Theme Developers Are Moving Functionality Into Plugins

Jonathan Atkinson has been selling WordPress themes on Themeforest for the past five years. Through hard work and customer support, he’s learned how to make a living on Themeforest without having to pack hundreds of options into his products.

Over the past year, Atkinson and his team at Cr3ativ.com have made an effort to convert all of their theme functionality into free plugins, eschewing the theme bloat that prevails in this market. Cr3ativ now has a plugins page where you can find functionality that enables carousels, careers, portfolios, shortcodes, and staff profiles. They plan to add events, discography and photostreams in the coming weeks.

The Benefits of Keeping Plugin and Theme Functionality Separate

Atkinson said they initially created the plugins to be used with their themes and to better serve their buyers. “I took the decision to make them as generic as possible to ensure they could be just as easily used within any theme – free or premium,” he said. “I also decided to offer them 100% free and full GPL 2.0 so people can hopefully use, learn and extend if they wish.”

Keeping plugin functionality separate from themes is part of WordPress theme development best practices but Atkinson cites a few additional benefits:

Speeds up development of new themes

Enables them to extend capabilities of existing themes

Theme independence allows them to extend plugins without creating a massive and painful update to an existing theme

Gives them more “breathing room” to concentrate on other possible outlets for their products, including other marketplaces, their own independent store and other avenues.

Atkinson and his team are building new themes that support the use of their plugins and are also retrofitting the old themes to make use of them. The process hasn’t been easy, but they found help along the way.

“We have never created a single plugin before embarking on these and had to lean on Pippin from PippinsPlugins.com for advice as we moved forward,” Atkinson said. Branching out into plugins was completely new territory but Pippin Williamson helped to review and test their free plugins. “We had some things to change and at the end of development we’re happy we traveled this road.”

The Demand for Bloat Keeps Theme Developers From Following Best Practices

Overall, keeping plugins and themes separate has provided a better experience for Atkinson’s user base and gives his team more freedom in what they create. If this practice is so beneficial to theme authors, then why aren’t we seeing a mad rush of others moving to do the same?

The root of the problem is that consumers actually want themes that are packed full of options and functionality. The vast majority of Themeforest customers buy WordPress themes based on the demo. As WordPress has grown to power more than 21% of the web, theme developers are catering to people who, through no fault of their own, buy themes based solely on visual queues, not the code.

Atkinson explains how the theme market has changed over time:

At the very beginning when Themeforest started I think that the buyers were different. The majority of buyers were developers. They may not have been full-on developers but they certainly knew how to roll their sleeves up and do a little bit of CSS. But now we’ve switched over to where the majority of buyers are actually the website owners…They know how to upload a theme; they know how to install every plugin on earth and that’s about it.

Consumers want themes that don’t require installing a bunch of plugins. They want to be able to simply click to customize everything. As a result, bloated WordPress themes sell far better than those that follow best practices. Most of the top-selling WordPress themes on Themeforest are products that are packed full of multiple sliders, dozens of homepage options, shortcodes, unlimited layouts, page builders, etc.

Smashing Magazine has recently been promoting a WordPress theme that claims to be “the last WordPress theme you’ll ever have to buy.” The X theme, created based on advice from internet marketers and SEO experts, promises “truly unlimited styling.” It is one among many themes that have been built to be all things for all projects.

The WordPress theme market is saturated with themes that promise to do it all and these products tend to sell very well among non-developers. Specificity of form and purpose has been replaced with generic skeletons boasting unlimited options.

Theme authors are then faced with a grave decision: Sell a couple hundred niche themes with clean code or build every possible option/functionality into your theme and sell 50,000 copies. For those who are trying to make a living, it’s difficult to compete. This is a complex problem that doesn’t have an easy solution.

Building Themes that Respect WordPress’ Plugin System

Atkinson and his team at Cr3ativ.com are among a handful of theme authors who are taking a principled stand against building plugin functionality into WordPress themes. Those who have chosen this path stand out as beacons in a vast sea of bloated products.

Justin Tadlock has long been a vocal proponent of keeping plugin functionality out of themes, especially as it relates to data portability. “That’s just been the way WordPress has worked since the inception of the plugin and theme systems,” he said. “It hadn’t crossed my mind to add certain functionality into a theme because that’s not how WordPress was designed. For some reason, a trend started toward adding plugin functionality into themes, which is when I started looking into the issue.”

Tadlock’s Theme Hybrid framework comes with a suite of free plugins that offer additional functionality. On occasion, he has made wrong choices and had to retrace his steps:

There are things that I’ve put into themes and later realized that it was not the right choice. I just go about correcting those mistakes one at a time. Sometimes, it takes a number of months and possibly years of making sure you’re not breaking things for users.

The trend of packing everything into themes was ignited by WordPress’ increasing popularity and the fierce competition among marketplace theme developers to provide the the most value. Unfortunately, consumers don’t care about best practices and re-educating them is not an easy task. It falls to WordPress theme developers and marketplace regulators to make the tough choice to keep themes clean and preserve data portability.

First Steps Toward Removing Plugin Functionality From Themes

If you’re a theme developer who is looking to remove functionality from your products and offer it in the form of accompanying plugins, you’ve got your work cut out for you. Tadlock’s advice: “Just do it. Make sure you offer your users a fairly easy transition, at least as easy as these types of transitions can be.”

Theme authors don’t necessarily need to suddenly add plugin development to their skills. Tadlock suggests that making use of existing plugins is a good option.

So many developers want to build everything in house when there’s a much better solution out there already. I’m even guilty of this at times. Of course, the infrastructure is not there on WordPress.org to make it easy for developers to work together. That’s why so many of us have turned to GitHub.

Tadlock reports that he’s seen a considerable jump in other developers using his plugins in their projects after moving his code to Github. Making use of others’ work and collaborating on improvements is less daunting than having to develop all the accompanying plugins yourself.

Tips for Consumers Buying WordPress Themes

Since consumers inspecting commercial themes do not have access to the code, it’s not easy to know if a product is built with best practices in mind. The demo and list of features are often the deciding factors, especially for those who have no technical knowledge of WordPress themes. If you don’t want to have your data locked into a theme, you need to be on guard to select products that utilize plugins that will preserve your data.

When it comes to theme options, the cold, hard truth is that not everyone is a designer. There is no ultimate visual layout builder or unlimited color chooser that will magically make you into a designer. If this is something you can recognize about yourself, then you may want to steer away from themes that offer massive options panels with unlimited everything. Instead, opt for design-specific themes that follow best practices and offer a few options using WordPress’ native customizer.

Eventually, marketplaces may enforce more strict submission guidelines for their themes, based on community input. Theme developers who have sunk into a hole with their heavy, bloated products, will have to dig their way out or get pushed out. WordPress developers who want to be successful long-term will need to return to WordPress’ original design and keep plugin functionality separate from themes.

Who is Sarah Gooding

Sarah Gooding is an Editorial Ninja at Audrey Capital. When not writing about WordPress, she enjoys baking, knitting, judging beer competitions and spending time with her Italian Greyhound.

Share this:

Like this:

Related

39 Comments

thanks so much for mentioning us in the article, which btw, is a great read and full of interesting points that I am sure will spark some discussion. I agree also with Justin that we don’t always realize we have done something wrong, but if we eventually realize, and work towards correcting things, everyone wins in the end.

Cracking article. I’ve recently started using ACF quite a bit in a theme I have been developing, well mainly child themes if it. As a result I now have a range of ‘plugin-esqué’ thingamybobs like sliders and options tabs based solely on ACF. I can export them as XML and import them on any project I use ACF with. I think the way I’m doing this almost falls into the same arena but falls short as the theme files need to call ACF specific functions, such as: get_field().

It’s a shame as ultimately I think I’ll have to change towards creating plugins that use shortcodes to add the bits and bobs in the content.

This is a great article. As I was reading, I thought about whether theme authors use data portability as a feature. Something to the effect of a badge that immediately informs customers that they don’t have to worry about being locked into the theme.

Right now, it seems like that is an excellent point of difference that some of the smarter theme authors could take advantage of. As long as their claim were true, it would be a win win situation.

This is great news. Themes are presentational and theme functionality should be directly related to presentational elements. When themes ship with custom post types and other odds and ends they lock the user into that theme for perpetuity lest they lose the custom content they’ve created. We have helped a lot of people untangle themselves from premium themes that added custom functionality on top of WordPress’ own functionality and it is a serious problem for the longevity of the ecosystem. To see theme foundries moving away from this practice is long awaited good news.

Thanks Sarai, I got convinced about the saying of Justin Tadlock and just to satisfy my curiosity went to the forest to pick a theme and the fire in me died when I’m about to use the theme however, Divi elegantthemes proves to be another breed outta the whole lot because it made me wanna create more WP site while learning the codex of themeing :).

I’ve been thinking about this a lot recently and agree with the premise that plugins should handle the functionality and themes should handle the beauty, which is why I’ve started really diving into plugin development and trying to move all of the things I normally utilize for client projects into plugin format.

This way they’re not tied down to my theme + it’s been a great learning tool on the different things I am able to do as a theme developer who may or may not be creating themes to sell soon.

Really well written article Sarah, I hope the more things like this are discussed, the more the average WordPress user will become educated.

And you get the benefit of reusing your plugins for other projects. You’re not reinventing the wheel. I think a contributing reason to why we’ve ended up in this situation is that themes can pretty much do everything a plugin can do. There is no real inherit separation of functionality. Because of this, I think a lot of theme authors just built in functionality into the theme.

Glad to see such a reversal in practices and getting back to the separation of the presentation of content and functionality.

Yes, I’ve already noticed a speed up in development time since I am able to just activate plugins rather than have to copy/paste the code into each theme functions file and then change up names to ensure it’s unique to the website I’m using it on.

I used to just throw everything I could into the functions file since it seemed like the cool thing to do when building a theme, but the more I work with plugins, the more I see the benefits of having the code outside of the theme, especially when an update is done, since it goes to all client projects who used the older version of code.

Timthumb comes to mind, and I’m sure you remember how big of an issue that was when the vulnerabilities hit with it, and updating that code on every client site was an absolute pain.

Oh, TimThumb. Remember that like it was yesterday. Sites are still being hit by scanners looking for themes using the vulnerable script. Lots of sites have a lot of installed themes but are only have one activated. Those other themes could be ticking time bombs. But that’s all beside the point.

This is a discussion well worth having. Unfortunately bloated themes are very much a market driven thing. The X theme in the article has over $600K in sales in what looks like 4 months.

I’m all about keeping a differentiation between look and layout of themes and the functionality of plugins. At the same time, as long as people keep buying swiss army knife do everything themes, folks will keep producing them to get those sales.

Excellent point Chris and it’s something we’ve been hammering away here at the Tavern. Trying to educate theme authors that this is not the way to make a buck. Acknowledging the fact that it’s not all their fault, they are just creating products to meet consumer demand.

Unfortunately, this is a trend that will be hard to slow down considering the momentum it has. But Jonathan and others are shining examples that a buck can be made without putting the customer into a locked box.

So over the Avada, Udesign and X theme bloat after having built many sites around them. As they keep updating and expanding their feature sets they always introduce new bugs that have to be dealt with- not to mention the massively expanding html that keeps getting bigger and bigger. I have since switched to Genesis and couldnt be happier since I now never have problems with Cache, minify and CDN optimisations.

Methinks that there should be a demarcation imposed within the WP owned theme repositories to differentiate between themes that ‘have functionality built in, that should be in plugins’ and those that ‘have functionality from accompanying plugins’. And a visual badge applied as ‘branding’ to show which camp themes fall into. And a way to view, say, only the latter.

External repositories could use the same badges should they choose to, but I accept that a ‘false flag’ culture could then arise at the more disreputable end of the market.

If WP doesn’t help itself to encourage good coding and standards then the market will dictate the move away. Sort of like the tail wagging the dog?

Interestingly, the Theme Review Guidelines that are used to review and approve Themes to be included in the official WordPress Theme Directory already require Themes to respect the presentation-vs-content/functionality differentiation. Directory-hosted Themes are not permitted to include “Plugin territory” functionality.

In fact, the Theme Review Team was somewhat ahead of the curve for this trend, and initially took quite a bit of heat for defining and enforcing a “bright line” differentiation between Theme and Plugin functionality; but it has been worth the effort, and then some.

We chose to adopt this philosophy some time ago at WooThemes. It’s been a mammoth task given our extensive catalog of themes but we’re now really starting to bear the fruit of this transition.

It can be a tough sell though. From the consumers perspective the ThemeForest theme with 5000 features represents better face value – despite the drawbacks that to us as developers are all too apparent.

I just wanted to say major kudos to any ThemeForest authors who are bucking that trend. It’s also great to see articles like this posted on wptavern. Openly discussing this topic can only help more folks understand the benefits of building themes more sensibly.

My only emerging concern is the lack of unity with regards to the plugins authors choose to integrate with. Separating functionality into plugins is great, but saturating the plugin space with 20-30 plugins which all essentially do the same thing does seem a waste of resources.

Exactly, we don’t need multiple content plugins that meet similar needs. We just need a couple that do the job really well. Many developers should work on a few shared plugins instead of many developers working on their own plugins.

The problem might be getting developers to agree on how things should be done. In reality that might mean ceding control to a competitor. Ideally, developers would join a project instead of creating a new one. This assumes the plugin maintainer is willing to work with others and that they’ll not brand the thing to death.

Then there’s the idea of establishing common post types, taxonomies and custom fields for a niche that multiple developers can use in their projects. Is there any reason this wouldn’t reduce the lock-in effect just as well?

I completely agree, the theme marketplace has become something of an arms race with everyone racing to have the most features. As a WordPress web design agency, we’re constantly struggling with bloated, slow-to-load and difficult-to-maintain ThemeForest themes. Yes, themes need the flexibility to adapt to different people’s content, but that doesn’t mean that you have to pack in every feature under the sun at the expense of performance etc. I’d love to see more themes that go against this trend and combine flexibility with simplicity, performance, standards-compliance etc. And as you say, a major part of this is separating things out so that the theme is for the design, and the plugins are for the functionality.

Interesting article and as mentioned in other comments, this may also derivate on a plugin universe with tons of similar plugins. Why not just using/including other projects like PODs and Piklist to create those extras? Maybe some day instead of reinveinting the wheel, developers could help projects like PODs to become more awesome and interchange components no matter what theme you are using :)

Theme X sucks big time! On the “Live Preview” on Themeforest it shows a menu with smooth scrolling to sections which the theme actually doesnt have and the developers are too lame to implement it.
Dozens of people are complaining about it in their support forums, but themeco couldnt care less about that. I asked for a refund but they dont feel responsible.

I am so happy I found this article. Am totally new to WP, know nothing about CSS/JS/PHP, was about to purchase Avada on Themeforest but decided to do a little bit of due diligence before pulling the trigger. I already bought X theme and not pleased with how it works, and thought Avada may be the one.

Very grateful for this article and everyone who chimed in, you sure have convinced me to stay away from the Themeforest route.

One thing that really made me change my mind about Avada or any other theme in Themeforst is when someone said how portable are my contents once I started using a particular theme? This spooked me.

It has been a nightmare for me trying to migrate my site to another platform so I will do anything to avoid having to do that on a regular basis.

Actually the article isn’t about all themes at ThemeForest being bad. Some are, some are not, it depends on the author in all honesty. There are bad practices performed by many WP themes for sale from multiple places. Your best bet is to simply ask how the functions are performed within the theme, if they are plugins then your data is safe as long as you use the plugin.

It’s true that not all are bad. However, there’s really no way for prospective buyers to know this up front at the moment. It’s not really a question that most of them even know to ask, nor should they have to.

And, just because a plugin is used doesn’t necessarily mean that the problem is fixed. I’ve seen many authors there with custom one-off plugins that will only ever work with one theme, so it kind of defeats the purpose of separating the code in the first place.

Very true Justin – but then this can be said for buying any theme at any theme shop, customers should always ask questions, become informed and possibly even check out reviews, ratings etc. before they purchase anything really. The choice and power is with the consumer.

Yeah, don’t get the wrong idea about ThemeForest (that’s where I make my living!). Some themes are packed full of features that are not portable at all, and some come bundled with plugins that hold your content, making your site ultra-portable. Like Jonathan said, just know what to ask when deciding on a theme. ;)

Give plugins not using CPTs, shortcodes, etc. a special “Avoids Lock-in” badge and let buyers search for those themes. I think something like this could educate users and encourage authors to make better products in the future (they’ll have to if buyers start seeking out these types of themes).

I thought about a year ago Envato was getting ready to put measures in place to require new submissions not to use CPTs in themes with a plan to eventually require old themes to be updated. Do you remember that? I haven’t been active on ThemeForest for a while. What came of that? It sounded difficult from a short-term business perspective but wonderful in the overall scheme of things.

Data portability is one of the cornerstones of our development strategy and why anything non-theme related is being built as a plugin.

To deal with the setup fatigue, we’re also working on a plugin that will allow for one-click download and install of both the theme (+ child theme) and plugins.

One thing we’ve been thinking about a lot though, is that it would be much better if this was a community effort.

1.) 100% WordPress native – it should look and feel like a natural extension of WordPress.
2.) Only enough functionality to fulfil it’s purpose – any additional functionality available via extensions.
3.) Easily extendible via hooks, filters (and more) – making it really easy for developers to extend or build 3rd party extensions.
4.) Not overloaded with configuration options – built for the content creators (ie, the people using the site).
5.) Built with performance in mind.

Assembly looks like the perfect platform to collaboratively build out the base plugins.

If anyone is interested in getting involved, please send an email to chris[at]themebutler.com.

We will be reaching out to other theme and plugins devs to see if there is any interest in a collaborative effort (Justin Tadlock being at the top of my list).

All this has certainly got me thinking, but the sheer amount of options has not lead me much closer to a choice after 3 weeks of solid reading everyday. Ive made a couple of sites with wp, I want to make a commerce one now, looked at loads of themes, none of them have the layout I want so realized Id have to customize. Discovered framework type theme builders like headway and flexible themes like divi and then looked into performance and landed here. I dont need all the glamor but I do have a specific layout in mind and above all it has to load quick, Im willing to learn a bit of code but am overwhelmed with the scale of choice against my knowledge.