From a consumer perspective, WordPress is as attractive as it is because of the number of plugins that exist for it. From a developer perspective, WordPress is as attractive as it is because of how easy it is to extend the core application through the APIs.

They’re a hot topic, too – anyone (including me and probably you, as well) who’s worked with WordPress in any capacity has their opinions on some plugins, on certain plugins, on all plugins, on the plugin directory, and so on.

But one thing that we don’t talk about very much – at least right now – is the idea of extensions. But why? They’re something that are becoming more common with various plugins and with various themes.

Plugins and Extensions

I think plugins are easy to define:

Plugins are meant to introduce functionality to WordPress core that [should] play nicely with each theme.

Yeah, there are some operative words in there, but the general idea stands true. When it comes to extensions, though, I think different people may have different definitions.

At a high-level, I think that extensions can be defined as the following:

Extensions may be thought of as plugins for plugins or theme-specific plugins – or some extensions are plugins, but not all plugins are extensions.

You can probably come up with a better definition, but the main point is that extensions can come in two flavors:

  1. Those that introduce functionality into specific plugins
  2. Those that introduce functionality into specific themes

Though there are plenty of examples of each of these; two examples that quickly come to mind are the Easy Digital Downloads extension library and the Make Plus plugin for Make by The Theme Foundry.

If you’re someone who wants to create extendable plugins and themes, then you’ll need to place proper hooks (and do_action calls) throughout your codebase, but that’s not the point of this post.

Instead, the main point is simply to bring up the question is to if this is something we, as developers, should be thinking more about when working on our projects? That is, should we be making our plugins more extendable? Is there value in creating theme extensions beyond what the standard child-theme functionality offers?

This – like so many other things – doesn’t have a definitive answer. There are going to be those who absolutely agree and those who absolutely don’t (and that’s fine), but for those who are interested in considering it from a business standpoint, does it not make sense to follow this model in order to create a lean core product and create a mini-ecosystem around your work?

No, not all plugins and themes need to offer extensions. Offering pure functionality into WordPress core and/or focusing solely on the presentation of data in the form of a theme works fine (and has worked fine) for years.

Perhaps we’re just beginning to see something become more and more common throughout WordPress. Maybe not.

Personally, I think that it’s something that’s catching on and that will become more common for a number of WordPress-based businesses. Given the right project, I think it’s something that’d be fun to try. In the meantime, though, I’m enjoying seeing how others are working with this model and seeing how it works out for them.