I like Joomla!, and I like WordPress, but which one is better? There’s only one way to find out…FIGHT!
Only kidding; the internet is already packed a little too tightly with angry arguers arguing about things that don’t really need to be argued about quite so vehemently. No, in this article series we’re not looking to separate, but to educate, providing in-depth details of the differences between WordPress and Joomla! from the jargon to their structure; we’ll leave the task of choosing which CMS should power your site in your hands. With that said, let’s get started with the basics as we look at the terminology that each CMS uses.
“When in Rome, do as the Romans do.“ – A phrase so well-known that you don’t even need to finish it to be understood, and its message holds true even today. So if you’re going to drop in on the WordPress or Joomla! communities it’s worth familiarizing yourself with each CMS’ jargon; if you do, you’ll find it much easier to get the answers you’re after without causing confusion.
Nomenclature, or: Whatchamacallit
‘Nomenclature’, for our non-native English speakers, is a fancy way to say "the words used in a particular field"; basically, in this case, it’s simply means the words WordPress and Joomla! use to describe their various parts. Though they share many similar traits, the phrases each CMS uses can vary wildly, so take some time out to get used to the differences.
Joomla Says: Template, WordPress Says: Theme.
The base definition of a template is something that is used as a model for others to copy; in computing terms, this could be anything that holds content. Your word processor or spreadsheet software likely has a ton of available templates for laying out your data or content in various ways; in Joomla’s case, the template is something that controls the overall appearance of your site. Like a template in Excel, the functionality of Joomla is not affected by a template; it just changes the way that it looks.
Instead of templates, WordPress calls it’s appearance-controlling files themes. Theme has a similar meaning to template, but is more whimsical; a theme is a subject, or an idea that pervades a work, whereas template is more practical; as you go through the list of terms you might notice this pattern occurring quite often. WordPress, given its mass appeal, will often use simpler, more layman-friendly terms compared to Joomla!, which is more interested in practicality, providing solutions and clear distinctions.
Theoretically, template and theme are interchangeable; they approach a subject from different directions but are broadly the same meaning. However, this isn’t the case in practice, though you might occasionally encounter people who prefer to call Joomla! template themes, or WordPress themes templates, however rarely.
WordPress Says: Widget/Plugin
A widget or Plugin in WordPress is the other popular way to extend a site’s functionality after themes (there are also drop-ins, but they’re quite advanced and thus rarely discussed). If themes provide the form, widgets and plugins provide the function. So what’s the difference? Essentially, a plugin extends WordPress; it can add background functions, SEO features, and all sorts of other cool stuff to make running your site easier. A great example of a plugin would be WooCommerce, which provides a multitude of ecommerce tools to create an online store.
A widget is more frontend-focused; it’s a functionality that you can add to the sidebar or other widget area in your backend to provide extra functions for users. Sticking with the WooCommerce example; WooCommerce is the plugin, but the plugin also includes widgets like a category list that can be added to the sidebar so users can quickly flick through product categories. Basically, if you can drag and drop it in the Widget area of your WordPress backend so that users on the frontend can see it, it’s a widget. If its changing the functionality of parts of the WordPress backend, or providing additional tools for creating and modifying content, then its a plugin.
Joomla Says: Module, Component, Plugin, Extension etc…
Whilst WordPress sticks with the whimsical naming scheme (I’m getting on a bit, so I’m used to a widget being a device for generating froth in a beer can!), Joomla sticks with the practical naming convention that more distinctly separates the functions that each elements provides. So whereas WordPress goes for a general "most things are plugins" approach, the Joomla! terminology takes care to offer multiple categories to define how a given extension operates, and what it changes. The ones you’ll run into day to day are:
- Extension – This is an umbrella term Joomla uses to define anything that adds to the functionality of the CMS; all the other terms in this list can be described as extensions. In fact, even a template is considered to be an extension!
- Component – A component is something that provides the larger functions of Joomla. A component may generate its own menu items and subpages, and will generally significantly enhance or extend Joomla. A good example of a component would be VirtueMart, the premier ecommerce solution for Joomla that turns your Joomla site into a functional webstore.
- Module – A module is the Joomla equivalent of the WordPress widget; it can be placed in any available module position to provide additional functionality on a page. The big difference between modules and widgets is that Joomla includes the ability to limit modules to a particular subpage/language as standard; it’s possible to do this with WordPress but you will need additional plugins such as our Widget Rules plugin to do so.
- Plugin – The simplest kind of extension for Joomla, but there are still some surprisingly complex plugins available. Generally, a plugin allows you to modify content and save subpages through its code, but will not generate new content on its own.
As an interesting aside, Joomla’s main functions, such as content management, are all provided by components that are separate from the Joomla core, whereas the same functions in WordPress are built directly into its code and are inseparable from the base WordPress. In fact, recent Joomla updates have been slowly decoupling many functions from the core, allowing for bespoke setups that avoid including functionalities that aren’t necessary for that particular project.
Joomla Says: Module Position, WordPress Says: Widget Area
The module position is an area that allows for modules to be published to it. The number of areas available and their location is unique to a template or can be dynamically created by an extension; if you use two different templates you will see that they both have different positions available. A basic blog template might only have module positions in the sidebar, whereas our more complex templates can boast tens of module positions that allow for more dramatic frontpages and layouts.
Widget Areas are functionally the same as Module Positions in Joomla; they define the areas where you may place widgets. Sometimes however, the widget area will be referred to as the sidebar. This is because the sidebar is the most common widget area you’ll find in a theme, and highlights WordPress’ blog-focused origins.
WordPress Says: Dashboard, Joomla Say: Administrator Panel
The dashboard is where the magic is made; it’s the main admin area of your WordPress backend, and then thing you’ll see when you login. WordPress likes to keep things simple and interaction-focused with the basic dashboard area displaying latest comments, WordPress news and site stats like visitors.
If I had told you that the backend of these CMSs were called the Dashboard and Administrator Panel in advance, you’d have guessed which one was which wouldn’t you? Joomla again keeps their naming system practical, and this extends to the base layout of the admin panel too, with more content and admin-focused options such as article management and last logged-in users.
WordPress Says: Action, Joomla Says: Event
For the technically-minded among us, an action in WordPress is a bit of PHP code that performs a function, that is then added to the WordPress loop to react to a particular situation. If you’re not into the development side of the CMS then this might sound a little too deep, but it’s actually simple. The WordPress Loop, as it is called, is basically just the process that creates the content to be displayed on your site; let’s say that you have a blog theme that displays your latest posts on the frontpage; when the frontpage loads, the WordPress Loop is the process where the system checks for the latest posts, finds them, then pulls the information needed to create the content. An action can be set to react to any of these steps and perform additional functions; think of it as extending the scope of what WordPress can do beyond the basic functionality. Plugins, themes and the like all rely on this method to provide their key features.
Joomla runs under a very similar concept, but instead of Actions, it instead calls its reactive functions Events.
WordPress Says: Filter, Joomla Says: Overwriting
A filter in WordPress does what is says on the tin; it filters. In particular, it filters data. By creating your own custom filters, you may exhibit control over the data sent to or from a particular action. Imagine if you had an action in WordPress that grabbed a block of data containing information about people and their appearance; a filter could intercept the data before it was served to the page and remove or modify the specified parts, a bit like an electronic game of Guess Who? In Guess Who? you need to guess which character’s card your opponent is holding; by asking questions about the appearance (do they have a beard? Wear glasses?) you can narrow down the search. It’s a startlingly crude comparison, but filters work in a similar manner to manipulate data.
In Joomla! there is no real equivalent of filters, but there is a substitute in the form of the ability to overwrite the key elements generated by Joomla!: containers around modules, paging blocks, system messages and view file extensions.
Alternatively (time for our technical hats, boys and girls!), another option is to access the object code that is returned by the JResponse events or class. In contrast to WordPress, Joomla! has the upper hand when it comes to overwriting views; in WordPress, whether it’s possible to overwrite plugin or widget views depends greatly on the goodwill of the plugin author; that is, whether they implemented this functionality during the development process (such functionality was included in BuddyPress, for example). With Joomla!, if the extension is created according to Joomla! standards, you may overwrite all its views.
Despite the huge differences between Joomla! and WordPress on the technical side, many of the functionalities and features are surprisingly similar, separated only by a different name rather than anything concrete. Now we’ve got a grounding on naming conventions, next time around we’ll look at the versioning differences between the CMSs, as well as the menu functionality (a key part of the Joomla experience, especially).