Many clients ask us if certain themes will work with our suite of Simple Intranet plugins. I usually respond by saying that if you use an updated free or default theme provided by WordPress.org then you won’t have any issues. They then often ask, “Well what if I want to use XYZ Builder Theme that uses the SuperDuper Framework from Whizbang Inc.?” At that point I would usually respond by saying that there are no guarantees that it will work without conflicts.
Don’t get me wrong, there are many very good paid themes and frameworks out there, however there are many reasons it would be much better and safer to use a trusted and true free theme from the WordPress.org theme repository along with a customized child theme. Here are my top 5 reasons;
1) WordPress.org Theme Standards
One of the key benefits of open source code is that it meets the WordPress Codex theme requirements. Compared to free core WordPress.org themes, paid themes are created out in the “Wild West”, and often include JQuery or AJAX scripts which are not properly enqueued. This can result in a world of problems, including errors, bugs, security risks and conflicts.
Remember, WordPress was created with the intent of separating form from function. This means separate folders for /themes (CSS and basic PHP templates) and for /plugins (JQuery, AJAX, PHP functions etc). Putting plugin code in the theme folder, beyond basic PHP code in the functions.php file, was not the intent of WordPress.
2) Conflicts, Conflicts, Conflicts!
And speaking of conflicts, if you want to reduce the chance that you don’t take your site down or experience the dreaded white screen of death or other issues, then you need to be careful what scripts you are running in your themes folder. With script-heavy themes that add non-standard and incorrectly referenced or structured AJAX, JQuery, HTML, or API references to the functions.php file of the theme or elsewhere, you open yourself up to not only plugin conflicts, but also being hacked, slow loading sites or SQL injection attacks.
3) Tested & Regular Updates
The core default WordPress themes are developed and reviewed by hundreds, if not thousands of contributors and tested on millions of installs. A paid theme will never reach close to that amount of quality control and testing before going live. If you develop a child theme for your core WordPress.org theme, you can still benefit from the core theme receiving updates while maintaining your child-theme code base as it is.
4) Easy Debugging
When you separate code from design, you can then isolate issues MUCH more easily. The recommended conflict resolution process for WordPress is to first switch to a default WordPress.org theme, and deactivate all plugins. Then you introduce each plugin one by one until you find the problem plugin. You can then use debug_mode to isolate problem code within the plugins that are referenced in warnings or errors. By adding non-standard browser-based code, especially AJAX or JQuery to a theme, you increase the complexity of the debugging process.
The easiest way to extend and customize your free WordPress.org theme is by creating a child theme. Using a child theme, you can then customize it as you like via CSS and PHP while not jepoardizing the core theme and updates. Not only is this a very simple process, but it also allows for fixes and updates in the core (parent) theme. You can also still add any specific theme functionality using WordPress Codex compliant code in the functions.php file of the active theme in the wp-content/themes folder.
The only required child theme file is style.css, but functions.php is necessary to enqueue styles correctly from the parent theme. You can also create and modify page template files such as header.php, page.php or others safely while still preserving the core parent theme’s original styling look and feel. With a child theme, you get the benefit of the core theme’s usability testing and browser/device optimizations with the benefits of adding your own unique colors, classes and styling to your site.