What Is a CMS "Theme"?


The theme for a CMS is a collection of code files and (usually) images that determine how a CMS web site looks.

How Is a "Theme" Different From a "Template"?

In the CMS world, ​template and theme basically refer to the same thing. The word used depends on the CMS. Drupal and WordPress use the word theme, while Joomla uses the word template.

Note that Drupal does have a separate concept of template files. But don't let that confuse you. When you're talking about the single "thing" that controls how most or all of a Drupal site looks, you call that the theme.

For more on how different CMS programs refer to the same concepts with different words, see the CMS term table.

Themes Change the "Look" of the Site

When you think about how a site "looks", you're probably thinking of the theme. The goal of a theme system is to let you change the look of the entire site all at once, on every page, while leaving the content intact. Even if your site has thousands of pages, you can change to a new theme quickly.

Some Themes Include Extra Functionality

In theory, a theme (or template) focuses on the "look", and adds little, if any, functionality to your site. If you want a little box in the sidebar to do something special, you'll need to find a separate module (or ​​plugin or extension, depending on your CMS).

That's the theory. In practice, many themes (or templates) seem to also include lots of extra features which you can enable. I see this much more with WordPress and Joomla than I do with Drupal (probably because Drupal is so geared towards building sites with separate modules).

It also seems that paid themes (which are almost unknown in the Drupal world) are very likely to include this extra functionality. The web page for a paid WordPress theme or Joomla template often includes various extra features as a major selling point.

I prefer the Drupal approach, where extra features are split off into their own modules, and themes focus on the look. You get more flexibility. You're not tied to a particular theme just because you like one or two of its widgets.

On the other hand, if a paid theme solves all your problems in one fell swoop, and it's well maintained, it's not necessarily a bad idea. Some of these paid themes remind me of Drupal distributions. They seem to be trying to package every extra thing you might need on your web site. For some users, that could be a good thing.

Was this page helpful?