WordPress is unquestionably the world’s most popular blogging platform. Part of its charm is the way you can switch themes, instantly changing the look and feel of your blog. However, there are a new breed of advanced themes, or “frameworks”, becoming increasingly popular. These frameworks expand on the theme concept, going beyond the purely visual appearance of the website, delving into the nuts and bolts of the website’s code.
In the five years that I’ve run this blog I have only ever used two different themes and as my most recent theme was over four years old I decided that it was time for a change.
Additionally, as WordPress constantly evolves, new features are released that only the latest themes are able to take advantage of. Clearly my old theme wasn’t making the best of what WordPress had to offer; all the more reason to update it.
In the process of refreshing the look of my blog with a new theme, I decided that it would be opportune to consider building my new design on a “framework” based theme. But where to start? Which framework, and what advantages would a framework actually give?
Understanding Theme Frameworks
While the exact definition of a theme framework may vary depending on your perspective and the particular framework implementation, a general definition can be considered as:
“A framework is a ROBUSTLY CODED theme that acts as the FOUNDATION for other themes”
Parent and Child Themes
The advantage of building themes on a framework or ”parent theme” is that every theme developed using the underlying foundation has the same core code as its parent with all of its associated advantages.
Using this method you are not reinventing the wheel every time you code a theme. New themes essentially customize the main or parent theme creating what are known as a child themes, which inherit all of the desirable properties of the parent.
Advantages of Using Theme Frameworks
Using a solid code base as the foundation for your themes, you can be confident that your themes’ code is correctly optimized for SEO, with validated, secure code designed for accessibility.
Furthermore, whenever your themes’ framework or parent theme is updated, your child themes will automatically inherit these updates and the latest code. This essentially future-proofs your child themes and therefore your blog.
Why Choose the Genesis Framework?
Nothing is all things to all people, so a lot can depend on your personal circumstances and what you expect from a framework.
The two most popular frameworks for WordPress are Genesis and Thesis.
I chose the Genesis Framework for two key reasons:
- Firstly Genesis is much CHEAPER than Thesis. For a one-time fee of around $60 Genesis can be used on unlimited sites, with free updates for life plus lifetime support. Thesis on the other hand starts at around $90, with only 12 month’s of upgrades included.
- Secondly Thesis, while being highly configurable with its easy to use drag ‘n’ drop Visual Design Template Editor, is very bloated compared to Genesis. I liked the lean, compact efficiency of Genesis, even though it meant more work configuring style sheets by hand.
Another positive for the Genesis framework is the recommendation from Matt Mullenweg (WordPress’ founder) who says:
“Child themes and a framework are the only way you should build your WordPress site and Genesis has great support for child themes and other WordPress functionality.”
Some of Genesis’ fundamental features that attracted me to its use are:
- Code optimized for speed of loading
- Architecture designed for search-engine-optimized code
- SEO integrated into the framework; no additional plugins required
- Code written securely following WordPress security best practices
- Validated XHTML compliant code
- Integrated Google authorship identification for enhanced SEO
Genesis also comes packed with many other useful features such as a configurable breadcrumb navigation menu and multiple layout options.
Unlike the Thesis framework which supports a Visual Design Template Editor, to code a Genesis theme you are going to have to get your hands dirty. Luckily, as an Electronic Engineer by trade I’m used to hacking code, so this wasn’t a major issue for me, but may be for some.
There are two main files that require modification to code a basic Genesis child theme:
- The first being the style.css cascading style sheet, which should be familiar territory to any competent web designer.
- The second file is a key component of most WordPress themes, functions.php. This file enables you to customize the Genesis framework in greater detail using the framework’s pre-designed hooks and filters.
Hooks and Filters
The concept of hooks and filters can take a little while to understand and is probably the steepest part of the learning curve when coming to terms with the Genesis framework.
Hooks and filters are a useful way of customizing the framework’s underlying code in a controlled manner without hacking the original code directly.
Using this method maintains the integrity of the underlying code base, which in turn enables the core code to be updated without causing any undue repercussions.
Importing SEO Data
Prior to implementing the Genesis framework I used the popular All in One SEO plugin for my blog’s SEO functions.
Part of Genesis’ attraction for me was its SEO functions built into the framework, which I really wanted to make use of. However, I had a large amount of historical SEO data from old posts that I wished to retain.
Fortunately Genesis have a handy plugin (SEO Data Transporter) that seamlessly imports all of your SEO data from popular SEO plugins, like the All in One SEO plugin, directly into the framework.
Once imported you can happily remove your old SEO plugin and the SEO Data Transporter plugin, leaving you with an efficient, integrated SEO solution.
Adopting the Genesis framework can bring many advantages, such as secure, validated and SEO optimized code together with future proofing of your themes.
However, coding a child theme is not straightforward. Genesis does have a bit of a learning curve, particularly in understanding its use of hooks and filters. If you’re not familiar with basic CSS and PHP coding then Genesis is probably not for you; Thesis may be the better option.
If you are comfortable with basic coding, then Genesis could be the framework for you.