WordPress Theme Development: Theme Options Vs The Customizer

02/08/2023ok Since the early versions of WordPress 4.2, the customizer has made its debut and has survived future versions of the most popular content management system since then. As I teach my theme development courses on Udemy, I started to integrate more video lectures on developing the customizer into your themes and to move away from the offering theme options.

First of all, let’s talk about theme options.

Most WordPress users who deal with multiple websites are very familiar with the concept of theme options. The concept is simple: Access the theme’s “theme options” and make all kinds of settings from all of these:

  • background color
  • custom CSS
  • built-in SEO settings
  • Google Analytics and Adsense code
  • slider options
  • width and height dimensions of the main wrapping <DIV> tag.
  • footer options
  • header options
  • social media addresses
  • social media icon sizes
  • and any option that is normally offered through plugins
  • the list goes on. There is no limit to what is put into theme options.

Some theme developers also place the link for theme options in different places too. Some place the theme options in the dashboard. Some place them in the Appearance menu (most do actually). Some give theme their own main link. Others place them in the black admin bar at the top. What a pain! It is so inconsistent and in my opinion, very bad practice. It drives the admin users crazy.

Theme options have become the staple of WordPress themes. There is only one problem that I see with them. They are inconsistent and offer somewhat of a learning curve. Every theme seems to offer a unique set of theme options that cause more delay and time spent learning how to use them and where they are. For example, here is what I see as the big problem with theme options:

  • “theme A” offers a background setting in a tab called “Home Page Settings”
  • “Theme B” offers background settings in a tab called “Cosmetics”.
  • “Theme C offers background settings in a tab called “Colors”.

Again, another pain. As an admin user, I believe that I should be able to use any theme and know exactly where each of these settings are without me having to hunt around the admin dashboard. This inconsistency sometimes makes me nervous just to try out a new theme.

Now let’s get into the customizer.

As I mentioned, the WordPress theme customizer is relatively a new concept in WordPress themes. WordPress core comes with two new APIs: Theme Modification API and the Theme Customization API, the latter being the API that builds the customer. WordPress out of the box, offers a customizer regardless of where the theme does, but a theme can override it. The default customizer includes its own theme options including background color, header color, site title and tagline and others. Themes can not only override the default, but can also add to it.

The reason why I like the customizer is because all of the options are in one place: In the upper-left corner of the admin dashboard and I see no option to move its place. That creates consistency for me. Theme developers can also put theme options here in prevents the stress of the admin user from hunting all over the dashboard for a simple option a background color.

Not only does the customizer appear in the upper left-hand corner, but it is hidden inside a drawer that only appears when the customizer link is pressed. Also, the customizer comes with a transport method. Let’s talk more about that in the next section.

Like tabs in the theme options, the customizer also comes with tabs, but they act more like horizontal accordions called sections. Some sections in the customizer also come wrapped in what is known as panels to further keep your options organized. I personally have developer sections in the customizer for all types of features like these:

  • Google maps
  • restaurant / store hours
  • text strings
  • unique image settings
  • social media settings

The Customizer transport refresh option.

This is amazing and a great breakthrough for the main WordPress installation. The customizer has a transport method with the default being the refresh option. What that all means is that when an admin user makes a change, it can be “previewed” before the setting is saved. That prevents any WordPress site from looking different than the admin intended before that setting goes live. It is a preview. If you do not like the look, you simply do not save the change. We do not have this privilege with theme options.

In conclusion and summary…

If you build themes yourself, I vote for the customizer as the better method. We do need to discontinue the use of theme options for these reasons:

  1. Theme options are inconsistent from theme to theme
  2. Theme options have no standard of best practice and allow the theme developers to place them anywhere causing admin users to hunt all over the dashboard for theme
  3. Customizers are in one place.
  4. Theme options can always be placed inside of the customizer
  5. Customizers offer a nice consistent look that will allow admins to get use to them. What is your opinion? Do you agree or disagree?


Be the first to comment

Leave a Reply

Your email address will not be published.