There are many very good WordPress themes out there that include a lot of extra functionality to their themes to make it easier for users to enhance their sites. However, the reality is that despite being very useful for users, especially those that are not so technical, this extra functionality can and will hinder your site should you choose to move to a new theme.
This stems from the competitive theme market vying to include as many bells and whistles in their themes as possible to make them stand out from the crowd.
OK, so don’t get me wrong, the functions included with many themes are extremely useful, and in fact essential. An example is to be able to add Google Analytics tracking code, or other scripts, to your theme via a handy option bundled with the theme. However, certain site functionality has nothing to do with design, and so should not be bundled with themes. Website publishers may need to update or change their theme, and as such, essential site functionality is lost. This article below explains better than I can as to why it’s best to include your site tracking code via a plugin, one example of data portability for your site:
What should be included as a plugin?
It comes down to Data Portability. If the function being added needs to be portable (ie: the data it receives or produces has to be available at all times, not just with the theme), then it must be a plugin.
Below is a list of functionality that is best served via a plugin, rather than a theme. This way, you are sure that your site has less chance of breaking when you change themes.
Adding Analytics code or other scripts
Best served via a plugin. Even hard coding this into your theme files will loose its data portablity – you may forget to re-code into your new theme. Plugins hook into the wp_head or wp_footer hooks of a theme to output a script (all themes should include hooks and filters). That’s why WordPress offers hooks and filters. This option offered by a theme will do the same thing, but will switch off when you change themes. The plugin will remain active, ensuring your tracking code keeps running for your analytics stats.
Shortcodes for displaying content
It’s very common for themes to use shortcodes for displaying content. An example is to display buttons for links, format content into responsive columns, and a whole multitude of other uses. Finding a good shortcode plugin for this would ensure that your content formatted with shortcodes remains intact. Having this functionality built into a theme only will then cause the shortcodes to display as text and to loose their formatting if you change themes. You’ll see something like this:
[ button ]Click here[ /button ]
[col]My text here[/col][col]My text here[/col]
Many themes come bundled with sliders. (Some even use premium sliders and bundle them in when they’re not supposed to do it.) Ideally, use a slider plugin for your site that will remain in place if you change themes. Slider plugins come bundled with their own shortcodes so you can display them on your site. A good one is the Nivo Slider WordPress Plugin. The Nivo Slider WordPress Plugin also supports the building of your own slider themes that remain active when you change your WordPress theme.
Of course, there are many more I can add to this list, which I will do.
Image credit: Purchase from Shutterstock