5 Ways to Get a WordPress Theme

With a degree in computer information systems from Mohawk Valley Community College, John worked for small businesses and performed freelance work before joining Site-Seeker in 2007.

Before I begin I want to correct a couple of misconceptions as far as WordPress themes are concerned.

All WordPress sites require a theme. Some people will say “I don’t want to use a theme.” However, that is not possible. Without a theme a WordPress site has no way to display the content of the site. What someone that says this is really saying is “I want something unique.”

Some people refer to a theme as a template. While technically this is correct it simplifies what makes up a theme. A theme is a collection of templates, the number will vary depending on the exact details of your site. A theme also contains PHP functions that are called from the templates to display or alter the display of site content. Lastly, a theme contains code that alters the dashboard (admin interface) of your site, this can include setting up image sizes, adding widgets, and many other aspects. A theme is far more than just a template or collection of templates so we should always refer to them by the proper, all inclusive term of “Theme.”

So what are the different ways for getting or creating a theme for your site?

1) Install an Existing Theme

The first, and simplest method for getting a theme for your site is to go out and find one from one of the many repositories and sites that offer themes. You simply find the one that will best meet your needs, download it, and install it. You then get to work in the dashboard setting it up, adjusting options and adding your content.

Coding Requirements:

Minimal, some HTML and CSS knowledge may be helpful.

Limitations:

While this is the easiest method of obtaining a theme, it is also the most limiting. You are limited to what the theme is already capable of doing. Any other modification you wish to make must be done through existing plugins. It may be difficult to make it work and look exactly the way you want. You may have to settle for something that’s less than what you really wanted.

Just to clarify something though, it is entirely possible to modify the theme if you choose to do so. Please see the section on modifying an existing theme below for more information.

Efficiency:

This method of obtaining a theme is very efficient, sites can be launched very quickly since no coding changes will be made and you are basically making changes to options and adding your content.

Site Speed and other SEO considerations:

SEO of an existing theme is entirely dependent on the theme and the plugins you use. Site speed can vary depending on the coding experience of theme’s author. In all cases, if it’s not built into the theme or available through an existing plugin, modifications will not be possible.

Updates:

There are usually no problems with updating WordPress and published themes, as long as the theme is well maintained by the author. You should take time to investigate how well the theme is supported. It may also be a good idea to have the theme checked out by an experienced developer you trust; they may be able to point out problems that you might see down the road. For example if the theme uses deprecated functions which could mean the theme is likely to break when those deprecated functions are removed.

2) Child Theme

The next method is one step above using an existing theme as is. A child theme preserves the original theme and allows for some additional modifications to be made. While modifications are possible, the extent of the modifications should be limited. CSS changes can be made freely. Functions can be created that override the functions of the parent them. Even layout changes can be made. However, it is recommended that the functions and layout changes not be too extensive. The reason for this is that extensive layout and function changes will mean breaking parts of the theme out of the parent theme. Doing this means that if there is an update to the parent theme, any changes to the parts that were broken out will not carry over to your child theme. Changes and updates to these functions and template parts would need to be done manually.

Coding Requirements:

Minimal to extensive. Intermediate to advanced knowledge of CSS, HTML, PHP, JavaScript and WordPress functions. Also, being intimately familiar with the coding and functions of the parent theme is helpful.

Limitations:

While there are not really too many limitations on what can be done in the child theme to make modifications, there are limitations of what should be done. It is recommended that the changes made do not stray extremely far from the parent theme as making extensive changes is more likely to fall into the category of one of the more advanced methods of theme development listed below.

Many of the modification made to a child theme will be accomplished with existing plugins, as it is with the first method of using an existing theme.

Efficiency:

Efficiency of building a theme in this method can be good to bad. It really depends on how familiar the developer is with the parent theme. Any reduction in development time can be outweighed by any lack of understanding of the layout and coding of the parent theme. To get past this learning curve the developer must use the parent theme as a starting place on a regular bases. Once this is done then the efficiency of building a theme in this manner will increase.

Site Speed and other SEO considerations:

As with using an existing theme, using a child theme will limit your options on what can be done as far as optimization is concerned. Once again, if extensive changes need to be made then you should seriously think about moving to one of the more advance options of theme development.

Site speed may be effected by using a child theme. All the files of both the child theme and the parent them come into play. You’re site will load the entire style sheet of the parent theme before loading the style sheet of your own theme. The size of the parent themes CSS as well as how much of that CSS you override in the child theme will be an important factor in site speed. Double processing of content through hooks and filters can also occur. All of this will impact your page load time.

Updates:

Like with using an existing theme above, there are usually no problems with updating WordPress and the parent theme. All of the information given above can be applied to child themes, with one exception; you must keep in mind that it may be necessary to have a developer update the child theme in order to carry over any improvements and fixes made to the parent theme. This will all depend on how extensive the changes to the child theme were in the first place.

3) Modification of an Existing Theme

This is similar in respect to the method of using a child theme, with one important exception; instead of creating a child theme you rename the theme so that it can no longer be updated and layout, style and coding changes are made directly in the main theme files, in effect, creating a custom theme. This is really not much different that using the starter theme method described below except that the theme you’re starting with is a bit more fleshed out to begin with.

Coding Requirements:

Minimal to extensive. Intermediate to advanced knowledge of CSS, HTML, PHP, JavaScript and WordPress functions. Also, being intimately familiar with the coding and functions of the theme that will be modified is helpful.

Limitations:

There are not really too many limitations on what can be done to modify a theme. Building a custom theme is one way to get exactly what you’re looking for. Changes can also be made using existing plugins.

Efficiency:

Like with using a child theme, efficiency of building a theme in this method can be good to bad. Again, it really depends on how familiar the developer is with the theme they are starting with. Any reduction in development time can be outweighed by both any lack of understanding of the starting theme or the extent of the changes to be made. Again it comes down to the learning curve and the developer’s experience using the theme as a starting place and what they have done with it in the past.

Site Speed and other SEO considerations:

Site speed is not any different than using an existing theme. It depends on how the original theme was coded and the expertise of the developer making the changes. All other optimization can be accomplished and it is all dependent on the skill of the developer.

Updates:

Updates to WordPress can cause issues, this depends on how carful the developer was when coding the theme. If a deprecated function is used and it is removed the site will likely break. If the use of a function is altered this could also break your site.

Theme updates will need to be done manually and the best person to accomplish these changes will likely be the developer that built the theme in the first place. However, other developers would be capable of making the changes, just not as efficiently. For the new developer it is like making changes to a theme they’ve never worked with before, depending on the changes made there could be a bit of a learning curve.

4) Frameworks

I’m simplifying the definition here, but; a framework for building WordPress themes is like a really big, really extensive theme. It has lots of options and settings. It may or may not include the need to write code or it may allow you to build entire custom themes without doing any coding at all. There are a lot of frameworks available, too many to list them all. Some are quite popular and well maintained, some are obscure. An existing theme that you find in a repository or site may actually be built using a framework. The existing theme may also be considered a child theme of a theme built in a framework or even considered a child theme of the framework itself.

Coding Requirements:

Minimal to extensive coding may be required, depending on the framework chosen.

When coding is required to use a framework, most of the time you must substitute standard WordPress functions, hooks and filters with those supplied by the framework, or add the framework’s list of functions, hooks and filters on top of needing to know the WordPress set. Intermediate to advanced experience with CSS, HTML, JavaScript, PHP and WordPress code as well as an understanding of the framework is required.

Limitations:

Limitations are dictated by the framework chosen. While the choice of options in some frameworks may seem endless, reaching beyond those choices may be difficult or impossible. The only way to know what the limitations are is to have intimate knowledge of the framework chosen.

It may not be possible to use all plugins to add additional features to a site. Plugins must be chosen more carefully to ensure that they are compatible with the framework.

Efficiency:

Like with all methods of building a theme so far, the efficiency with which a theme can be built using a framework is dependent on the experience a developer has in using that framework. Again, every framework is different. Experience with one framework will not likely translate into efficiency with using any other framework. Once mastered, a framework can greatly decrease development time over making modifications to an existing theme, but the learning curve can be quite steep. This learning curve can be increased due to poorly written documentation, or the ability to access help. Some frameworks require the payment of a fee to access documentation or help.

Site Speed and other SEO considerations:

Using a framework will most likely increase page load times. The entire framework must be loaded. Frameworks have a lot of options and all of those options must be checked on every page load even when the option is not used. To top this off, you may also be loading a parent theme as well as the framework which comes with the overhead covered for using a child theme. Other SEO considerations may or may not have been taking into consideration by those that built the framework and you could be limited in what can be done by what was built in.

Updates:

Just like with the variability of frameworks themselves, updating them can be just as variable. Is the framework well maintained? If the theme is a child theme of a theme built on a framework, is that theme well maintained? Who are you going to get to fix things if either the framework or the theme fails when you update WordPress?

5) Starter Theme

Using a starter theme is very similar to modifying an existing theme. The biggest difference is that a starter theme is a really stripped down model, only the basic framework is there and everything else is added as needed.

Coding Requirements:

Intermediate to advance coding skills in CSS, HTML, JavaScript, PHP & WordPress.

Limitations:

The only limitations with using a starter theme are the abilities of the developer building the theme and your imagination. Quite likely even the availability of a specific plugin will not be a limiting factor depending on the skill of the developer. If a developer is comfortable building a theme from the frame up there’s a good chance they can also build a plugin when needed. It may be a choice between adding some feature as part of the theme or as a plugin and which makes more sense for the particular feature.

Efficiency:

Like all other options, efficiency of building a theme using this method is dependent on the developer’s experience, but they have less in the way of a learning curve. They need to know CSS, HTML, JavaScript, PHP and WordPress functions and hooks. On the other hand, they don’t need to worry about getting familiar with a specific framework or theme. A starter theme is usually so basic that there’s nothing that really needs to be learned. Usually a specific starter theme was chosen because it already fits in with the developer’s skill set. The developer is also likely to have a library of code they can draw from to make it even more efficient. In the hands of the right developer using a starter theme is likely to be just as efficient, if not more so, than someone with much more experience in any of the other methods.

Site Speed and other SEO considerations:

Since only what is needed is added, and there is very little extra overhead, a theme built using this method is likely to be much faster than a site built using any other method. Of course, that depends on the skill of the developer, but that is no different than any other method.

As far as other optimizations, more than likely those are already built into the starter theme. If a developer is doing the same thing over and over again you can be pretty sure they’ve built it in because if there’s one thing a good developer hates to do is to repeat the same actions over and over again.

Updates:

Risks of updating WordPress when the theme is built in this manner are probably no less or greater than most of the other options, depending on who built it, except for the fact that there is less to go wrong. PHP is very stable, they’re not likely to drastically change something without a lot of forewarning. The same is true of WordPress, the changes may be more frequent but they’re not likely to just pull something out without notice. The same cannot be said for the thousands of themes and frameworks that are available, and there are absolutely no guarantees that the theme you purchased today will be supported when the next version of WordPress is released. Not only is a site built this way more likely to survive than some of the others but if something does happen it will be easier to fix by anyone that understands the core functions.

If Themes were Cars

Using a prebuilt theme would be like buying a car of the lot. It’s exactly like a thousand other cars. You know exactly what you’re getting and it runs well, you hope.

Using a child theme is like buying a car of the lot and then sending it out for a custom paint job, tinted windows, mag wheels and a sun roof. It’s really close to what you bought but you added your own special touches. It’ll run just as well as it did before but it looks a bit better.

Customizing an existing theme is like buying a car, tearing it down to its parts, tossing out the ones you don’t like, adding a few that you do and then putting it all back together again. It may look pretty and it may do what you want, but there could be a mess under the hood that you don’t notice till you need to take it in for maintenance.

Using a framework is like walking into a dealership and seeing a list of every option for every car and needing to check off yes or no for each option. You’re dazed and maybe confused by all the options and sparkle. You’re so involved with choosing options that it’s not till you’re driving your choice home that you realize it may not be running as well as you hoped, some of the options don’t work quite the way you wanted and that the one option that was an absolute must have is completely missing.

Using a starter theme is like buying a frame and having a mechanic add what you want after careful selection and consideration. Custom building every option to your exacting specifications. You know exactly how it runs and where all the switches are.