Need to learn the business-side of freelancing? I created The Fearless FreelancerTM for you. Check it out

Never miss a thing!

Sign up to have the latest news and announcements from my site delivered straight to your inbox.
  • This field is for validation purposes and should be left unchanged.

Reader Interactions


  1. Can you break this down in simple English for us.

    So I am on the existing Genesis with Metro.

    When Genesis 2.0 is released what do I do, step by step to be on the latest and greatest HTML 5?

    We use Genesis Simple Hooks.


    • Hey there,
      That’s outside the scope of this post, but check the links I mentioned at the beginning – there’s good info there on converting your site over. I’ll be writing more here on it when I’ve worked with it more.


    • Metro is currently a XHTML child theme. If StudioPress will update it to HTML5 no one knows at this time. Currently, that could only be done manually, especially the stylesheet (style.css) would need quite some reworking to the changed classes (formerly IDs). And maybe a few other things. However, it is absolutely possible to do and no magic!

      • Only took me around 20-30 minutes to convert the Epik child theme to HTML 5.

        Made easy by Brian Gardner’s new HTML 5 markup table.

        Search, find and replace job using Notepad++.

      • Just wanted to chime in here to let you know that Metro will be among the first of our themes to be released with HTML5 markup. We’ve actually got it finished, just waiting on Genesis 2.0 t0 be released.

    • WP 3.6 and Genesis 2.0 have been available for several weeks now and many tools have popped up to make the conversion to HTML5 really easy.

      We just converted our sites and it took less than 15 minutes each. I wrote a post documenting the step-by-step process we followed and the free online tools we used. For anyone interested, you can read it here –

      Carrie also recently published this article ( with additional resources and links to services that can do it for you if you feel unsure on your own. However, it is insanely easy to do yourself using the tools I mention in my article.

      • Thanks TJ – Great writeup!

        Only thing I’d mention – I prefer to do the XHTML to HTML5 swap-outs by hand. The conversion tools like the one you mention work for most cases, but there are some edge cases (due to customizations, etc) where the conversion tool doesn’t catch every little thing. Other than that, awesome tut – thanks for sharing!


        • Carrie,

          I deal with a lot of newbies to both WordPress and Genesis that need things to be a simple as possible. Eric Hamm’s conversion tool (and Genesis Extender plugin) generally work very well for them.

          I agree that manual conversions are sometimes necessary. That’s why I included several resources at the end of the article for those that need to go that route.


  2. Hello Carrie great post thank you so much for taking the time to put it all together. I’m new to your blog but have seen you around. Have a wonderful day..

    • Genesis Extender introduced a one-click activation for HTML5, so you got no worries with that plugin! You’ll still need to convert your style.css from xhtml markup to html5 markup If you want to activate/enable HTML5, but you can update to G2 without doing that as well.

  3. I’ve been waiting for this so long. Coz I have converted my CSS to genesis 2.0 compatible but was unable to make it complete without exact knowledge of the hooks. Thanks. You made my day.

  4. I’m a little late to the party here. This is going to take some getting used to! I’m working on a 2.0 theme and am a little confused by how to use the new hooks. Like, a few of the old hooks are now genesis_entry_header – how do you tell it to go before the title, after the title, before the content, etc.?

    • Hey Susan!

      In the new loop, the hooks are fired off in this order:

      * genesis_before_entry
      * genesis_entry_header
      * genesis_before_entry_content
      * genesis_entry_content
      * genesis_after_entry_content
      * genesis_entry_footer

      If you check out post.php (Genesis 2.0 / lib/structure/post.php) you can see how priorities are used to trigger the firing order of the hooks. The default priority is 10. So this is the default code for showing the title:

      add_action( 'genesis_entry_header', 'genesis_do_post_title' ); (No priority means it’s a 10)

      If you wanted to move if to fire off earlier, you could rewrite as:

      remove_action( 'genesis_entry_header', 'genesis_do_post_title' );
      add_action( 'genesis_entry_header', 'genesis_do_post_title', 5 );

      Take all that with a grain of salt as I haven’t tried that code live, but I think that’s the theory. 🙂

      • Carrie Dils… any idea just how much you are appreciated? Holy cow! I’m working in the Sandbox and added a grid loop under the widget areas. Couldn’t get the grid underneath the widgets to save my life. Stumbled on this post… added 5 to the end of the hook and bam! Right where I want them! Whew! I think I’ve said this before but you, dear woman are my Fairy Codemother! lol

  5. Thanks for this post, Carrie. Being new to Genesis, the learning curve was a bit steep but I enjoyed customizing and changing the look and feel of my new blog. This post definitely helped me in customizing my new website.

  6. Hi Carrie

    Thanks for an informative post on the hook side of things. I note that you upgraded Epik manually in around 20-30 minutes, would you be willing to share the Epik changes for the .php files. I have done the CSS but am really not clear on what needs to change in the default php files. I need to do a manual upgrade as its a fully populated site.

    Looking at the loop hook reference none of this are in the Epik files, so I am really at a loss as to where to start.

    Many Thanks

    • Hi Sally,

      I think you may mean Brad that updated Epik. 🙂 If none of the hooks here are in Epik, you should be good to go where your functions and home page files are concerned. You’ll just need to update your stylesheet from the old selectors to the new.


      • Hi Carrie

        Thanks for taking the time to reply. Yes, I had sort of hoped that would be the case but having changed the CSS both manually and automatically and testing- it seems that there are some other php changes required that are outside of the published Genesis hooks.

        Which of course makes them a mystery at the moment 🙂

        I will drop by Brad’s site


  7. We have some code that we use for some clients. It worked fine on non-HTML5 themes. But when using the newer themes that are HTML5 enabled, our code breaks. Here is the before and after code:

    /************ TAKE OUT FOR HTML 5 *********/
    //remove_action( ‘genesis_before_post_content’, ‘genesis_post_info’ );
    //remove_action( ‘genesis_after_post_content’, ‘genesis_post_meta’ );

    /************ PUT IN FOR HTML 5 *********/
    remove_action( ‘genesis_entry_header’, ‘genesis_post_info’ );
    remove_action( ‘genesis_entry_footer’, ‘genesis_post_meta’ );

    /************ TAKE OUT FOR HTML 5 *********/
    /*add_action(‘genesis_post_content’, ‘nmd_get_subpages’); ?>*/

    /************ PUT IN FOR HTML 5 *********/
    add_action(‘genesis_entry_content’, ‘nmd_get_subpages’); ?>

    Couldn’t the Genesis developers have put in a bit of logic such that IF the HTML5 switch was set that a call to the “genesis_entry_header” could be executed by “genesis_before_post_content” and same for “genesis_post_content”?

    We had to do quite a bit of debugging to figure out what to change in our module.

    Maybe there is/was a better way to do this on our end? Maybe Genesis has some guidelines for developers that we never saw? (And thank you Ms. Carrie Dils for your post about this. You are a wonderful resource to the community. We’d still be looking for the answer about this without you!)

  8. Hey thanks for this! I liked the old hook wording. All this ‘after_entry’ took a bit of re-learning to get used. to. Just glad I found your article to help me muddle through it!


Leave a Reply