Quite possibly the best thing about WordPress is the accessibility to a large number of themes and plugins. No matter what type of functionality or feature you are looking at, there are specialized themes and plugins for the job—be it for forums, magazine sites, portfolio blogs, tumblogs, and so on.
That said, there is also a fine line between themes and plugins in terms of functionality—themes give a distinct look and feel to your WordPress site, whereas plugins allow you to extend your site or do more with it.
But what happens when themes decide to cross that fine line and perform functions or offer features that should otherwise belong in plugins? If you opt for one such theme, sooner or later, you will find yourself becoming a victim of the theme lock-in effect. In this post, I will talk about the theme lock-in effect, what it is, and how to avoid it.
What Is the Theme Lock-in Effect?
Picture this scenario: say you get yourself a shiny new theme for your WordPress website. This theme provides everything that your website needs: it has shortcodes for embedded galleries, custom post types for testimonials, and portfolio items—even some room for that odd SEO meta code.
You set it all up, and your website goes live. Later on, say after a few months, or maybe even a year, you decide to change your theme. You get another shiny new theme, and much to your dismay, you notice that all your awesome embedded galleries, custom post types, and a lot more has just vanished. Not deleted, not removed, nothing—just gone!
This is precisely what the theme lock-in effect is. By opting for a theme that performed tasks that it should not have performed in the first place, your website became locked to a particular theme, and the moment you changed your theme, everything fell out of place.
Tell Me More…
To be honest, the concept of lock-in is not unique to WordPress. In fact, any software or tool worth its salt has had an encounter with such lock-ins every once in a while. Even to this day, Microsoft Office presentations or spreadsheets do not always perform well if you import them to LibreOffice (this is something that I had to face on a regular basis back in college, because my University used MS Office whereas I used open-source software on my devices). Similarly, migrating a PSD into a non-Adobe product is not always an enjoyable experience.
When it comes to WordPress, however, the case is different. Unlike MS Office or Adobe’s products, WordPress has always had backwards compatibility at the back of its mind. Downgrading or upgrading should not mean that you lose your website’s content or data. But when the theme lock-in effect kicks in, you essentially are locked out of your own website’s data. This is both an irritating issue to address and is also totally against the core philosophy of WordPress itself.
Why Does This Happen?
Head over to any premium WordPress theme marketplace, and select a few random themes. What do you see? If it is a portfolio theme, there’s a good chance that it offers functionality which can possibly lock you down later on: custom post types for portfolio, testimonials, and other posts, for example. Similarly, custom shortcodes, custom contact forms, custom carousels, and other such features also belong in plugins, but many premium themes tend to offer them.
Also, a rather new but ridiculously popular trend is the addition of drag-and-drop page builders within themes: the logic here is simple: you choose a theme, you build pages, and you find yourself in no man’s land when you change the theme later on.
Question is, why do theme developers offer such functionality which should otherwise belong in plugins? Strictly speaking, this is because in the absence of such features, a theme maker finds it hard to get noticed on premium marketplaces. If a given theme, say ABC, is offering 200 custom shortcodes, and another theme, say XYZ, is not, the end user will opt for ABC out of the simple belief that the more features you have, the better your theme must be!
What’s the Cure?
The easiest way out is to stay away from themes that can lock-in your site. Custom post types and shortcodes belong in plugins: a good theme, if using custom shortcodes, would encourage you to install the concerned plugin, rather than offering that shortcodes features within itself. A good theme will encourage you to install Jetpack for galleries, or WooCommerce for eCommerce, rather than providing such functionality all by itself.
You can easily look at your WordPress admin panel to see if the theme that you just activated has any features that can potentially lock you in to that particular theme. Alternatively, scan through the database; sometimes plugins do need to add extra tables to your database, such as Wordfence or BuddyPress. But themes generally do not have a good reason to add extra tables to your database, unless they are doing something outlandish like adding new custom content types.
As such, avoiding the theme lock-in effect is a wise choice. If, by any chance, you absolutely have to use one such theme, try to stay away from features that can lock-in your site. Use your own shortcodes, rather than those provided by the theme, for example. Bear this simple rule in mind: when in doubt whilst looking for a given piece of functionality, look for a plugin first, not a theme.
What are your thoughts about the theme lock-in effect? Share it with us in the comments below!