Most of the sites I have worked on use themes from the WordPress respository (WordPress.org). But, I have had a few scattered experiences with themes from other sources, specifically Avada from ThemeForest (2), Thesis from DIYthemes, and Headway themes, which seems to be its own thing. Each of these systems is an attempt to make it easier to build a WordPress site. Easier means developing without code. But, a website is code. Developing without code is like cooking without ingredients. The ingredients are canned like canned spaghetti sauce. And, you may not know the side effects of the additives.
How a WordPress Theme or Plugin is Created
Anyone who wants to can create a theme or a plugin for WordPress. WordPress was written to be extendable and both the code and information about how to write a theme or a plugin to work with the WordPress code is available on a website called WordPress.org. That is because WordPress works with “open source” principle. And, themes and plugins for WordPress can be submitted to WordPress.org where a volunteer team reviews them for compliance with the basic guidelines.
After a theme or plugin is accepted, it is freely available for download or direct install through the WordPress.org website. That is, you can go into your WordPress Dashboard -> Appearance -> Themes and search through thousands of free themes. But, not all themes and plugins go through the WordPress.org channel for various reasons.
There are other place to acquire a WordPress theme than WordPress.org. Because WordPress is open source, not only can anyone create a theme, they can also charge for that work. That’s fair. People should get paid for their work. But, they can’t put their paid themes in the WordPress repository. Only free themes can be added to the WordPress repository. Some companies with paid themes have a free version in the WordPress repository and a “pro” version on their own websites. And, they are willing to submit their work to the comments and critiques of the WordPress community.
What’s Missing from Themes not in the WordPress Repository?
Themes and plugins that aren’t in the WordPress repository have some important features missing. For one, you can’t find them through your WordPress Dashboard (1 & 2 in the screenshot). Your WordPress dashboard includes a function that can search the WordPress.org repository. If you find a theme on ThemeForest or DIYthemes, you have to download it from those sites, and then upload it through the dashboard (3 in the screenshot).
Themes submitted to the WordPress.org repository are open to comments and questions from the WordPress community. Other theme sites have their own rating and commenting system, but it is only for themes within their own repository. The people who use those themes are less likely to be coding developers who know whether the code follows best practices.
I found out about these deficits while researching some perplexing code in the Avada theme in 2015. And, the rest came out in the research.
2 Real Life Scenarios: Avada
A new client’s website was built by someone else in 2015. The Theme was Avada. Using Avada allowed a brand new developer to create what looked like a professional website on the front side. But a look at the structure told another story. For one thing, there were 47 plugins. Some of the plugins were tied to the Avada install. For example, the Revolution Slider was known to be insecure.
The theme allows a child theme to be built, but it is a constant struggle to code around the code in the Avada parent theme. There were 2000 lines of internal CSS code on the home page that wouldn’t have been there, if best practices had been followed. The Avada Fusion Builder allowed for a quick build at the expense of good coding practices.
We slugged on with Avada for a couple of years to concentrate on plugin cleanup and site organization. Beside the plugin and coding problems, a multitude of hands had made significant content and content organization errors. And, we had to figure out who owned the many, many accounts related to the site. Even the Theme Forest account wasn’t in an account the client could access. After most of the content and software cleanup had been done, we replaced Avada with the WordPress Kahuna theme, which is available from WordPress.org. With a proper foundation, customizations went much more smoothly.
A new client’s website was built by someone else in 2014. The theme is Avada. No software updates had been done on the site since then. The website host was planning a PHP update to 7.2. From a security standpoint, that is a very good thing. The web host has a tool that tested the update against the theme. The web host report says the theme will have fatal errors when the update happens. Fatal errors mean the site will crash. The updates are run; the site crashes.
The Avada version was so old, it couldn’t be updated to the newest version. Because of the complications with the Fusion Builder, Avada had to be updated incrementally. With the host going totally to PHP 7.2, the only way to do the updates is to clone the site on a host that will allow PHP 5.6 to run. Then the incremental updates can be run. But, we don’t have access to the updates without setting up a new Theme Forest account and paying for Avada.
Another issue we ran into was that some of the functions in the old Avada theme hold the content in a way that is not in the WordPress core structure. That means that, if Avada is removed, that content disappears. This was also a problem with some old plugins, especially gallery plugins. Images, instead of being stored in the Media Library where an image is available for many uses, were in folders reserved for that plugin. If the plugin were removed, all the images disappeared as well. In the case of this site, the whole portfolio section disappeared because even the individual pages with text accompanying the images was not in core WordPress structures.
We rebuild the site in Twenty Sixteen. Twenty Sixteen doesn’t require an account. Twenty Sixteen can be updated directly, even from an original version. The Twenty Sixteen theme can be customized to look similar to the Avada with a child theme.
A new client’s site was built by someone else before 2012. The theme is Thesis from DIYthemes. With the Thesis theme, I ran into something I had never seen before. Thesis actually disables the child theme function from the WordPress core. Apparently, there is a child theme function, but you have to create the child theme inside the Thesis theme file structure and using their specific way of creating the child theme.
The reason that WordPress has a method for creating a child theme, is that it allows a developer to learn one pattern for customizations that can be used from theme to theme to theme. Thesis sets all that learning time aside. And, their documentation is very sketchy. WordPress has significant documentation (although it is pretty technical in genre). To make the process easier, many folks in the WordPress community have written their own articles about how to create a child theme, such as this example from Smashing Magazine.
As Thesis gets further and further away from the version the site was built in and the WordPres core, it is now time to rebuild that look and feel as a child theme of a default WordPress theme. After all, any look and feel can be recreated in most any technology.