post

Breaking changes from Genesis 2.0 Release Candidate 2 to Final

Typically in the software world “Release Candidate” means it’s what will be shipping. At most there may be some bugs discovered that will be fixed, but nothing major will change.

Apparently it’s piss off your customers week in the WordPress theme universe because StudioPress just dropped Genesis 2.0 final and it’s got all sorts of breaking changes from the betas and both release candidates. WTH?

(note: if you weren’t using the betas or release candidates, these change don’t affect you)

First off the obvious one is that how you enable HTML5 markup has changed from:

add_theme_support( 'genesis-html5' );
to
add_theme_support( 'html5' );

Ok, well that’s annoying as it breaks things as your site reverts to old markup which your updated CSS won’t recognize, but it’s a quick fix.  Perhaps they COULD have included checking for either htm5 or genesis-htm5 in the genesis_html5() function, but they didn’t.  They seem to have decided “it was only a release candidate” we can break against it.

But WAIT that’s not all! (In my best as seen on TV voice)

A whole bunch of hooks got explicit priorities too (see diff screenshot):
Genessi code diff

So what these means practically is that if you had been removing this actions with:
remove_action( ‘genesis_entry_header’, ‘genesis_post_info’;
Now you must specify a priority to match
remove_action( ‘genesis_entry_header’, ‘genesis_post_info’, 12 );

IMHO, It was a LOT easier before when you didn’t need to worry about the priorities. All the default actions were hooked to the default priority of 10 and you could move them if you wanted.

The same goes for:
remove_action( ‘genesis_entry_header’, ‘genesis_do_post_format_image’, 4 );
remove_action( ‘genesis_entry_content’, ‘genesis_do_post_image’, 8 );
remove_action( ‘genesis_entry_content’, ‘genesis_do_post_content_nav’, 12 );
remove_action( ‘genesis_entry_content’, ‘genesis_do_post_permalink, 14 );
remove_action( ‘genesis_after_entry’, ‘genesis_do_author_box_single’, 8 );

With breaking changes like this, I’d assume there are more, I’ll add them here as I find them and fix them 🙁

Comments

  1. Reasons for specific changes:

    1. After RC2 came out, WordPress announced support for HTML5 in core using add_theme_support( ‘html5’ ): themeshaper.com/2013/08/01/html5-support-in-wordpress-core/ Since ‘genesis-html5’ hasn’t been used in an official release yet, it was best to switch to the core one so in the future both wouldn’t need to be used.

    2. Adding priorities to the hooks allows you to insert items between the genesis functions. Before if you wanted to stick something between the author box and comments, you had to unhook one of them and then re-hook it with a later priority. Since the hooks have not been used in an official release yet, this was the time to make the change.

    3. .navigation has been changed to .pagination.archive-pagination (.pagination applies to 4 types of pagination, .archive-pagination applies to the pagination originally styled with .navigation)

    I was one of the ones that it’s too late for major changes this late in the release cycle, but I do think they made the right decision. This is the only opportunity we have to set things up right and fix issues from the past. From now on, we’ll have to worry about backwards compatibility with HTML5 features.

    It’s better to cause minor issues for the few people building with betas and release candidates (I had to fix 20 sites today that I built on Genesis 2.0 over the past few months), than to pass over the opportunity to make these improvements for everyone going forward.

    • Thanks for the explanations Bill! I do understand the reasons for the changes and your diff is a better resource to visualize them than my quick and dirty screenshot: http://www.diffchecker.com/k1j3cwz7

      I too think the changes were the right decision, my complaint however is that StudioPress didn’t let anyone KNOW these changes happened between RC2 and Final.

      StudioPress to their credit have made testing the Genesis Beta’s easy with their plugin, but to not inform those same people (people outside the inner cirlce) of these changes prior to or even at release rubs me wrong.

      I only had to fix 5 sites, but had to do it in panicked “holy crap why is this !@$#@! broken” mode rather than “Oh, I need to fix these 5 little things before updating”.

      I trust most of the people running the RC’s follows Genesis new pretty closely, it wouldn’t have take much to put out a note that Genesis 2.0 Final is dropping tomorrow and these changes are going to break RC2 installs.

  2. Thanks for this post! I was caught up in a wtf moment when I upgraded from beta to the new genesis for a client’s site! Your post helped me sort stuff out.

Leave a Reply