Today’s lesson deals with an issue that is endemic to WordPress, so we’ll stray from our usual general-interest Web topics for just a moment and focus on this one issue on this one platform.
A few weeks back we briefly alluded to a best practice on WordPress sites, concerning whether advanced functionality like e-commerce should be handled by a theme or a plug-in. First a quick comparison of what is a theme vs. what is a plug-in:
Theme: controls the look and feel, and layout of your site. The “skin” if you will.
Plug-in: adds abilities to your site outside of the default WordPress scope. There are tons of plug-ins available (over 27,000 for free on WordPress.org, plus more available for a price from other companies); some of the more common are, for example, contact form builders, image galleries, and shopping carts.
In general, it’s best to keep these roles separate and distinct: let the theme do the visual layout stuff, and let plug-ins handle the functionality stuff.
Imagine you have a site. Now imagine that your site uses a theme that contains a contact form. NOW, imagine that you decide it’s time for an overhaul of your site’s design, so you switch themes. Uh-oh! What happened to the contact form? Because it was built into the theme, we’ve now lost that form. We’ll have to build another one, and this time let’s use a plugin (which of course is what we should have done in the first place).
In a more extreme example, let’s say that we’re using a theme that adds a shopping cart to our site. That’s all well and good, until we change themes; then, once again, we’ve lost that ability to sell products on our site. We’ll have to go back and rebuild our entire catalog from scratch. With a plugin.
In both of these cases, once we’ve switched to a plugin to do the heavy lifting, we can then change themes at will without losing anything we’ve built with the plugin. That’s why it’s called a plugin, because you can simply plug it into your site and it does its job, regardless of what theme you’re using.
Next time, some tips on best practices to manage your plugins, so they don’t get out of hand (it’s very easy to let that happen!).