I recently started using Genesis for WordPress theme development and there was definitely a learning curve involved. However, the productivity gains in the long-term make it worth a look if you’re currently using other frameworks or starter themes. I decided to carry out a site refresh for my main site and bring the previously separate blog into the same site. It felt like the perfect opportunity to try out Genesis for the project. Here’s five gotchas that you may face when developing and customizing themes using Genesis instead of other WordPress starter themes and theme frameworks
1. Writing Markup is Not Usually the Answer
When building sites with Genesis, the ordering and content of markup is controlled using Genesis hooks and filters. This is quite a different approach than starter themes like Underscores where you end up writing a lot of HTML markup in your templates to do things like control the appearance and location of post metadata and post navigation. For more details on hooks and filters, see Ben Weiser’s article on the topic.
2. You’ll Build or Customize Child Themes Instead of Parent Themes
Those used to building sites using other starter themes and frameworks often build completely custom parent themes. The downside of this is that parent themes cannot easily be updated later on as WordPress code conventions and security best practices change. With Genesis, you are provided with a parent theme (Genesis itself). You’ll be able to install updates to Genesis without losing any of your site customizations and without breaking your site since all custom coding will be done within child themes (which can be developed from scratch or purchased and then tweaked as needed). Note that in order to use any purchased Genesis child theme, you must have a license for Genesis itself and it must be installed as a WordPress theme on your web host.
4. A CSS Framework Probably is Overkill
Genesis has a free sample child theme that is available when you purchase the framework which includes basic CSS for styling the major components of WordPress components like blog posts, comments, and navigation menus. It also includes column classes for creating grid layouts (from an older version of Bootstrap). Therefore, you probably won’t need to add in a web framework like Bootstrap or Zurb Foundation unless you want to. This can definitely cut down on page weight quite a bit resulting in faster load times.
4. Custom Templates Still Give Freedom
You can still create custom templates within a Genesis child theme and use them to design unique layouts that apply to one or many pages. This gives you the freedom to build whatever type of design you need. One of my favorite blog posts detailing an approach to do this is Bill Erickson’s article on building full-width landing pages in Genesis.
5. There is a Thriving Genesis Community Available
When you’re new to any framework, things can be a bit overwhelming as you’re ramping up. In addition to the Genesis tutorials and documentation available to those who purchase the framework, there is a Slack channel, a Facebook group, and a Google+ group for the Genesis community. In addition, you can get answers on Twitter with the hashtag #genesiswp.