Don’t use the Genesis Blog Page Template

(Short answer: it’s not the main query, so customizations to the query won’t work. Make your blog the WordPress way, using Settings > Reading).

Genesis has been under development for quite a few years now. Given it’s history and large user base, there’s a few old features that would be removed, given the opportunity, but are needed for backwards compatibility – so people who have used them in the past can keep using them.

The biggest one (in my opinion) is the blog page template.

When you first install WordPress, your homepage lists your most recent blog posts. If you’d like a static homepage and to move your blog to a subpage, you can do so in Settings > Reading.

WordPress looks at specific files for these different pages. home.php is used for your blog posts listing (whether that’s your homepage or a subpage). front-page.php is used for the homepage of your site, whether you want blog posts or a static front page.

So, if you want a static homepage and your blog on a subpage like /blog, create the pages “Home” and “Blog”, go to Settings > Reading and set those as the appropriate pages to be used. If you’d like to create a template file to control the homepage, use front-page.php. If you’d like to create a template file to control the blog, use home.php.

Many of the older StudioPress child themes incorrectly use home.php for their static homepage. I’m not sure the reason, but my guess is they wanted to save people the step of going to Settings > Reading; when the theme was activated, the homepage was already a static homepage. The problem here is now you can’t have a blog. If you created a page and set it as the blog in Settings > Reading, it would use the home.php file which is now a static homepage.

Their solution to this was to create a page template that lists blog posts. The problem here is the blog posts are listed in a custom loop, not the main loop of the page (the main loop is the page’s content, which is replaced with this custom loop). This means plugins and other code that are designed to modify the main blog do not work.

What I recommend:
1. Never use the blog page template.
2. If you’re using a StudioPress theme that has home.php in it and it’s used for a static homepage, rename it to front-page.php. If you’re using one of the newer HTML5 themes, you should be fine. It’s only the older ones that have this issue
3. If you’re building a child theme for your client, exclude the Blog page template

Bill Erickson

Bill Erickson is a freelance WordPress developer and a contributing developer to the Genesis framework. For the past 14 years he has worked with attorneys, publishers, corporations, and non-profits, building custom websites tailored to their needs and goals.

Ready to upgrade your website?

I build custom WordPress websites that look great and are easy to manage.

Let's Talk

Reader Interactions


  1. kevin says

    A little info: I am using genesis 2, and create my own child theme for companies I work for. So I use a static home page, using a custom template named page_home.php which I then created a home page under pages and set to template page_home.php, which I can easily do your suggestion of renaming to front_page.php.

    But I am confused, I am using genesis, so then I wanted to created a blog, I go to pages and create blog and set the template to Blog which is provided with Genesis 2. Are you saying this is not the best idea? How then am I to create a page with blog that lists all my blog postings? Just a bit confused as this has always worked well for me in the past and I do not see a home.php in the genesis folder, just the page_blog.php template which uses the lib/loops file. I am assuming I am using this the correct way? Let me know if I am not being clear and thanks so much.

    • Bill Erickson says

      A better approach is to use WordPress’ built-in blog rather than the custom page template Genesis provides.

      If you’re not making any serious customizations to the blog you won’t notice a difference (which is why you haven’t had a problem using the page template). But it’s better practice to use WordPress core features rather than a custom page template.

      On the next site you build, create a page called Blog. But instead of assigning it the “Blog” page template, go to Settings > Reading and set that as your posts page. Same result, but doing the right way.

      • kevin says

        Thanks for the feedback. I set the blog page to posts page in reading. So now if I want to make customizations to the blog page I should add a home.php file to my child theme and make any edits there rather than adding a page_blog.php file and making edits in that file? So I am editing the core wordpress blog rather than the genesis template blog?

        • Bill Erickson says

          Correct, use home.php for customizing the blog.

          But also make sure not to remove the main blog loop like you’re doing in page_blog.php, or else you’re back to where you started.

  2. Juan Rangel says

    Good post! I have used the Genesis blog page for a while now. Most of the sites I create use a custom home page with no loop so adding a blog page, setting the template, and adding it to the menu was fairly easy.

  3. Josh Mallard says

    Thanks for this post.
    I’m a home.php culprit. I’ve been lucky since the sites I’ve built since switching to Genesis either had no blog or the blog was the home page. Will definitely be changing how I approach this now.

  4. kevin says

    Alright I have everything changed over to your suggestions, any custom code for the blog is in home.php and the only thing outside my code is Show Crumbs on Posts page? I checked in reading and my posts page is set to Blog page? I removed any code I had filtering the crumbs but still it is not appearing?

    2) To help users of my website, how exactly do we remove the Blog template from the templates dropdown, so I can then rename my home.php file to Blog so they are not confused?

    Thanks Bill interesting article. Sorry for the multiple questions but hopefully this helps others out as well.

    • Bill Erickson says

      Go to Genesis > Theme Settings, you should be able to control the breadcrumbs from there. When you’re using the Blog Posts page, it gives you a “Front Page” and “Posts Page” option for breadcrumbs.

      Until this makes it in to WordPress core ( ) we can’t remove it from the dropdown. So go over there and ask for it πŸ™‚

      • kevin says

        Odd it doesn’t seem to be applying the breadcrumbs to the blog page (set to posts page). I removed any filtering code related to the crumbs? hmm I will have to do some research.

        Will def. ask for the change.

        • kevin says

          Supercache issue, ‘my bad’ : /, displaying correctly and worked in the articles suggestions, thanks so much.

          If we name the home.php template to Blog would it override the page_blog.php template that is listed in the dropdown? Or would we most likely see conflict issues with having 2 templates named blog?

          • Bill Erickson says

            If you have a theme file named page_blog, it will be used instead of Genesis’. But that doesn’t solve the problem. You shouldn’t be using a page template for your blog.

  5. Puneet Sahlaot says

    That’s a brilliant explanation Bill! I can see the obvious reason for such a step of using home.php could be none other than skipping “Reading” settings.
    And this is a common problem with many other themes out there which force a custom home page design in this manner.

  6. Chris says

    So I’m confused.

    I want to use all the widgets that the Genesis child themes use for the home page. I’m using Executive Pro in a site as an example. Yet using all of the widgets (Home – Slider, Home – Top, Home – Call To Action, Home – Middle) only seems to work when Reading Settings > Front page displays is set to Your latest posts.

    If I set Reading Settings > Front page displays to A static page, I can specify the Posts page where I want the blog to show but I don’t have an actual page to set the Front page to.

    I want the Front page to use all of the home page widgets specified in the theme.

    Is there a way to do that or is there no way to use the theme home page widgets (which a lot of the Genesis themes do) when setting the Posts page in Reading Settings?


    • Bill Erickson says

      Yours is one of the themes I described above that has the template file for the homepage named incorrectly. If you rename home.php to front-page.php, you’ll be able to have your widgetized homepage as well as a blog using the WordPress core method (Settings > Reading).

      But this post really isn’t for you, the end user who has a theme working the way you want. Just leave it as is.

      This post was written for two types of people. The first are end users (like you) who are trying to use a plugin like Genesis Grid but it won’t work due to the issues described above. The second are developers, so that they build it correctly the first time.

      • Chris says


        Thanks for the reply. Just want to understand how this is supposed to function.

        Actually Executive Pro (being newer) doesn’t have a home.php. The page template is named front-page.php.

        So when I set the Settings > Reading > Front page displays to
        Post page: Blog
        Front page: leave blank
        should the home page still display the home page widgets?


        • Bill Erickson says

          Yes it should,but you should also set a page for Front Page. I’m not sure what it will do if you leave that blank.

          I always create a page called “Home” and set it as the front page. Even if it’s widgetized and the content is managed elsewhere

          • Chris says

            Yep that did it.

            I set the Front page to Home (I did have a page for it though it was blank) and the widget content showed back up.

            The problem must have just been leaving the Front page dropdown empty in Settings > Reading.


  7. Anne Katzeff says

    Hi Bill,
    I’m not sure if I’m understanding the problem. Should I rename the Genesis “page_blog.php” to “home.php”, then use the “home” template for the Blog?

    What I usually do is set my Readings Settings > Front page displays a static page named Home. The Posts page displays the Blog page, which uses the Blog template in the drop-down menu. This set-up works for me.

    News Pro theme uses the “front-page.php” template for the static front page, I think.

    Optimal theme uses the “page_landing.php” template for the static front page, I think.

    thanks, Anne

    • Bill Erickson says

      If you go to Settings > Reading and set a page you created to “Posts Page”, then it will automatically show blog posts. You do not need to select the blog page template on it as well. Give it a try. Edit your blog page and remove the “Blog” page template (switch to Default).

      In either case, you’re not using that template. When you set it to “Posts Page”, you’re telling WordPress to not treat it as a page, so all the page settings don’t matter (like page template).

      Settings > Reading only doesn’t work if your theme has home.php and is using it as a static front page rather than a blog. In that case, you’d rename home.php to front-page.php to fix it.

      • Anne Katzeff says

        Got it Bill! Thanks for the additional clarification.
        I changed the Blog page to use the default template, and it still functions as a blog. Fascinating. Didn’t realize that! You rock πŸ™‚

  8. Amber @ Au Coeur Design says

    Thanks for explaining this, Bill. I had noticed a year or so ago that the blog template never recognized my loop customization and stopped using it (although I never really understood why). It is nice to actually know why I was having problems. Incidentally one of the first things I noticed that made me realize that there was something funky going on with the blog template was that if your Genesis Title Toggle plugin is enabled and set to remove titles from pages under the Genesis theme options then the titles also disappear from blog posts on a page setup with the blog template (but not on a page set the WordPress way).

    • Bill Erickson says

      Yep, because the title toggle checks the main query (which is the page, not the posts) to see if the titles should be displayed or not.

      Thanks for letting me know about this! I’m sure others have had a similar issue, so when it pops up in the support forum I can point them here.

  9. Jeremy says

    Thanks for this helpful post! Until now I had been using the blog page template for my posts, with a static homepage and the blog on a subpage.

    However, I also have been using a “trick” I read somewhere on the web, where I modified the following line in my child theme’s page_blog.php by adding the number 8 at the end of the line there:

    add_action(‘genesis_loop’, ‘genesis_standard_loop’, 8);

    This resulted in me being able to edit my blog page (the one using the blog page template) in the Visual Editor and add my own text there – eg. an H1 title etc – and the blog posts would be listed below whatever text I added to the page there. This makes it super easy to add a title and any other content I want at the top of the blog page, using the Visual Editor.

    If I instead use the method you’re recommending here, that means the above won’t work, and any content I’ve added to the blog page (which no longer uses the blog page template, and instead is set at Settings->Reading) will not appear on the front-end blog page. Right?

    Is there any way around this? I suppose the only solution would be for me to create my own customised home.php and put my content (H1 etc) in there? But that would mean not having the advantage of being able to easily edit the content using the Visual Editor.

    Second question: the Genesis “Theme Settings” page has a section called Blog Page Template, where I can set which category to display, which is very convenient. Your recommendation would make that setting unusable, right? Why is it there in the first place? Just for historical reasons? It’s a pity there isn’t a similar setting for setting the category to use, when using your recommended method here. What would you suggest?

    Thanks again!

    • Bill Erickson says

      If you want to add content to the top of the blog post listing, create a home.php file with this in it:

      That will look at the blog page, grab what you typed in the page content area, and display it at the top. You could also hardcode the content in home.php, but this approach let’s you use the visual editor.

      Correct, the theme settings for the blog page template will not be used, since you’re not using the blog page template. But if you look at this post, you’ll see how to replicate it the “WordPress way”. Short answer (in functions.php):

  10. Dave says

    Great Points, Bill.
    This is one of those points about WordPress that is confusing even to geeks. πŸ™‚ The nomenclature of home.php and front-page.php is very vague, and just setting up any sort of homepage bollixes most beginners, which underscores the opaqueness of the admin interface before one gets used to it.

    Some site owners want a block of whatever text at the top of their blog page, sort of a newbie-ish “welcome to my site” thing. If the Genesis Blog template offered that, I could almost see keeping it around, but it doesn’t even do that.

    Best explanation I’ve seen yet!

    • Bill Erickson says

      Yep, it’s really confusing. That’s the problem with 10 year old software that’s evolved a lot – some things weren’t named well in the beginning and have to stay that way for backwards compatibility.

  11. Jeremy says

    Thanks Bill! I have a couple of additional questions if you don’t mind:

    Firstly, regarding your function at how would I use this to include two or more categories? (Say I have several categories but just want two of them, or three of them, to be included on this page).

    Secondly, can I use category slug names or full (friendly) names with this function, instead of the cat number?

    Lastly, what is the recommended “WordPress way” to add a second, separate posts page that lists the posts from another category? Eg. let’s say I want to have two separate, independent blogs on my site – one blog page will list the posts from Category 1, and the other blog page will list the posts from Category 2. I can easily set up the first one using your method described here, via the home.php template and Settings -> Reading. But how would I then add the second blog page? I guess WordPress doesn’t support this setup natively? What would you recommend?

    Thanks again for your help!

    • Bill Erickson says

      Refer to the WP Query Codex for all the available parameters.

      To include three categories by slug, you’d use this:

      For your second question, I’d say the “WordPress way” would be to use the category archives. So in Settings > Reading, do not specify a blog (so there’s no page that lists posts from cat 1 and 2).

      Then your first blog is and the other one is

      In Settings > Permalinks, you could rename the category slug to be something other than category if you like.

      • Jeremy says

        Hi Bill, I’m having trouble with the function you posted for me here. Specifically, the array doesn’t seem to work. When I replace your “cat-1”, “cat-2” etc with my actual category slug names, the webpage (front end) puts “Sorry, no content matched your criteria” onto the page.

        If I remove the array and just put the function like this, it works fine – obviously only showing one category though:

        $query->set( ‘category_name’, ‘cat-1’ );

        Do you have any idea why it doesn’t work when I use an array? Is there a syntax error in your Gist perhaps?

        With the second question – about having two separate blog pages – I guess your suggestion of using category archives would mean I couldn’t use the method you provided here to add content to the top of the blog post listing, right? That “trick” would only work when one blog page was being used on the site, via the home.php template?

        Thanks for your help!

        • Bill Erickson says

          It looks like ‘category_name’ only accepts one category, not multiple. If you’re willing to use ID’s, you can use ‘category__in’ which will show posts in one OR the other, or you can use ‘category__and’ for posts in one AND the other.

          Or if you must use slugs, use a taxonomy query:

          This is untested, I just wrote it in the browser. For further issues with queries, refer to the WordPress Codex:

          If you’re using Genesis, it provides a category intro title and description fields. Go to Posts > Categories and edit a category. This is actually one of the benefits of using a category rather than a post type archive (the main blog or another post type). Categories and tags already have an intro area.

  12. John says

    Great posts. I believe I have ran into some issues trying to customize the blog when using the Genesis loop so this is great stuff.

    I believe that the Gensis filters to change post-meta etc will still work even using the WordPress loop. Correct?


  13. Chris says

    Hi Bill,

    Really good explanation and comments. I’ve always struggled with doing things the Genesis way and knowing it wasn’t how WordPress designed it to be.

    Would you ever see a reason to use the Blog page template for a secondary “blog”. Ie if you have a blog but also want a /news/ page (I’m thinking large corporate sites). I’d normally setup a blog page and a news page with the blog page template and set each to the corresponding category.


  14. Massimo Chieruzzi says

    Thanks Bill, you saved me ! I had my blog page configured as a sub page of my site on /blog … I was trying to edit the loop editing the blog template included in my studipress template named page_blog but whatever I did nothing happened!
    Reading your post I understood that wordpress didn’t care about the page template attributed to that page and I had to create home.php !

  15. Jon Brown says

    I remember talking to you about this a while ago and it really helped me unconfuse me. Glad you got around to writing a blog post on it. Thanks again!

    The way I think about it now is if one is not using the main latest blog post query anywhere on the page, one shouldn’t be using home.php. Just saying “blog posts” can be a little confusing since many Genesis themes use featured posts widgets (no main query) or widgets in combination with the main query (slider widget / standard loop)

  16. Jeremy says

    One further question, Bill: my Genesis folder (at /wp-content/themes/genesis) doesn’t actually contain a file called “front-page.php” in the first place. Nor does my child theme folder. Why would that be? Your article here says that “front-page.php” is used for the homepage, and you’re describing a Genesis environment, so why doesn’t Genesis have this file?

    • Bill Erickson says

      There’s two reasons for this.

      The simple answer is the template hierarchy. WordPress looks for a specific template, and if that doesn’t exist it goes for a more general template. For instance, your “dog” category would first look for category-dog.php, then category.php, then archive.php, then index.php.

      The more complicated answer is that all the template files in Genesis just have the genesis() function, so they’re all the same. The difference is the functions that are hooked into the different Genesis hooks. For instance, if you open index.php and single.php, you’ll see they are exactly the same. But if you look in /lib/structure/post.php, you can see each bit of the template has conditional tags to specify what shows up where (look at genesis_do_post_content() as a good example).

      Right now your theme is using the index.php file from /genesis. If you put index.php in your child theme, that will take the priority because it is in the child theme. If you put front-page.php in your child theme, that will take the priority because it is more specific and in the child theme.

  17. Amanda says

    Hi Bill,

    I’m not a coder…so apologies if this is a silly question. I changed my blog page as per your post. The only thing is that I had a conditional statement to move the entry title to the ‘genesis_before_content_sidebar_wrap’ for all pages which does not work on the blog page anymore. I can see that the body class has changed to “blog”, but I don’t what conditional statement to use to specify the condition for the blog page.

    Thank you kindly for any assistance

  18. Mark Fayard says

    I’m using Cobalt Apps Dynamik child theme. By default it doesn’t permit you to select static pages for home or blog. Doing so “breaks” the EZ Home template. Any thoughts?

    • Bill Erickson says

      I would speak to the developers of that theme about it. They should support core WordPress features out of the box.

    • Jeremy says

      HI Mark, that’s not really correct. I’m also using Dynamik, and it definitely supports using a standard WordPress static page for the home and blog pages, ie. which you can set using the regular WordPress way via Settings -> Reading. In fact I use exactly this configuration myself.

      To accomplish this, all you need to do is go to the Dynamik Design Options page, then to the ‘EZ’ tab there, and select “WordPress Default Homepage”. Then you can go to Settings -> Reading, and change that to “A static page”, and select the page you want to use for the Front Page and for the Posts Page. And that’s it! πŸ™‚

  19. Jason Weber says

    Bill, what are your suggestions if one is using the Dynamik Website Builder as a child theme?

    In this instance, the child theme mandates that you set your Settings >> Reading to show your latest posts — IF you want a static homepage.

    Because Dynamik’s EZ Home system won’t work if you set Settings >> Reading to a static homepage, it’s thus impossible to set your posts page to “blog” or whatever.

    Any suggestions or guidance in this regard would be greatly appreciated! Thanks!

    • Bill Erickson says

      I recommend you contact the creator of that theme and ask why they’re preventing core WordPress features from working. It sounds like they have just set up their theme incorrectly.

  20. Carla says

    Thanks for helping me better understand this.

    The two files (home.php and front-page.php) confused me since their names kind of mean the same thing to me. Changing home.php to home.txt removes the grid, but leaves behind full length posts.

    For the front page of the eleven40 Pro theme, I don’t want any blog content to display. I noticed the static feature in the Reading section and without having first seen your blog post, I added a Home page. But it’s kind of a blank slate.

    So you’re saying I can then use front-page.php to develop my front page? It’s confusing because I already created functions I want to use in the functions file, and yet they aren’t displaying when I use a static front page. I’m not sure how to approach this and would welcome some feedback.

    Thank you.

    • Carla says

      I wanted to add, I’ve always wondered about the static option in the settings. I prefer elegant solutions that really simplify the design process. This makes so much sense, and when my very curious client (mom!) starts poking around her dashboard, it will be a quick and easy explanation of why those settings are there.

    • Bill Erickson says

      Correct. If you use the Settings > Reading area to specify your front page and posts page, then home.php will be used for blog and front-page.php will be used for the actual front page.

      If you have code in functions.php you want to run on front page, make sure you use the is_front_page() conditional rather than is_home().

  21. Carla says

    Oh, it’s a conditional thing! Geesh, thanks so much for clarifying that.

    The eleven40 Pro theme has a page_landing.php file. Is that the same as front-page.php, or should I create a new file?

    I’m so grateful for your help, Bill!

  22. Carla says

    So I created a Home page and a Blog page, and changed the settings in the Reading section. The Home page is now my static front page.

    It wasn’t displaying any content until I realized I had checked the landing page template. To get the page to display correctly, I chose the default template. I had to change some conditional tags to get my widgets to show up, like you suggested, using ! is_front_page() || in my functions file.

    But I don’t understand what front_page.php does. How does my website know that my front page is now the new front_page.php file?

    Or could it still be using the default template I chose in the page settings? It must not be, because I used the conditional tag above to make my Solilquy plugin display on the front page, and it worked.

    I can never spell that word correctly.

    Anyway, I hope what I’m asking makes sense. Things are working great. I just don’t understand the new file I created. It’s blank aside from the simple code you gave me. Is the idea to use the default template, and if I want anything extra on the front page, I now have a choice. I can put it in the functions file or in the front page file?

    How is the default template file communicating with the new file? How do they know they are now married?


  23. Carla says

    I forgot to change the Blog page template to default. When I did nothing was different, which is good. It works just fine.

    So this is what I’m talking about. It’s like magic, only I know it’s not. There’s some little wizard thing in the files that is telling all these pages who they are and what they’re supposed to do.

    I think my confusion is that you say blogs and static pages is a core WordPress function. But the default template is a Genesis file. Are they just calling into the house the core WordPress functioning by having that file? It’s not really a Genesis thing, but a WordPress call to action thing?


  24. Marijn says

    Hi, thanks for this great post! I’m a bit of a noob so I have this question, hope it’s not a stupid one πŸ™‚
    Checked my theme and it’s using a front-page.php so not the home.php.. I selected my blog page and front page in settings-reading.. But still seems impossible to change the page layout for my blog page, in other words can’t have my sidebar to show up….
    Any idea what to do? Thanks so much in advance!

  25. Jeremy says

    Hi Bill, as recommended, I’ve got my blog set up the WordPress way (I created a page called Blog and assigned it to the Posts Page at Settings > Reading).

    I recently decided to enable page titles on all my pages – previously I had them disabled via an option in my Genesis child theme, which I believe worked by removing the ‘genesis_do_post_title’ action, and I was then adding the titles myself as an H1 tag in the content of every page. But now I want the page titles added automatically by WP/Genesis itself, so that they get added before the ‘entry-content’ section begins, inside nice tags – ie. the Genesis/WP way of doing titles.

    However, I’ve found that the page title doesn’t get added for my blog page! Do you have any idea why not? My guess is that for some reason the ‘genesis_do_post_title’ action is not applied on the blog (ie. Posts Page) page, but I don’t know why not. Is there any way I can make this action run on my blog page?

    I realise that I can add a function like the one you’ve provided at to insert whatever content I’ve typed on my blog page, into the top of that page. But that’s not really what I’m looking for. I want to use the ‘genesis_do_post_title’ action, in part because I have another function which uses this action to manipulate my page titles, and I need that to be applied to my blog page too.

    Any ideas? πŸ™‚

    • Jeremy says

      Hi Bill – any chance you might be able to give me a reply or some pointers with my question above, please? πŸ™‚

        • Jeremy says

          Thanks Jon, but that’s not what I’m looking for. My Genesis child theme (Dynamik) already has the same functionality of the Genesis Title Toggle plugin built-in – I already can toggle page titles on and off from the Dynamik settings, exactly the same as what that plugin does. The problem I have is that the page title doesn’t get added for the Posts Page, ie. the page assigned as such at Settings -> Reading, which is what Bill is recommending we do in his article here. (I just installed the Genesis Title Toggle plugin just now to check it out anyway, but it doesn’t resolve this).

          I think the problem is that the Posts Page is not considered to be the same as a regular page as far as the β€˜genesis_do_post_title’ action is concerned, and so that action is not triggered against the Posts Page. I’m hoping there’s a way to change that.

          • Jon Brown says

            Correct. Title Toggle won’t help you. Sorry to lead you astray I misunderstood what you wanted.

            I have no idea how Dynamik works. You should probably contact their support.

            In a normal Genesis Child theme though you should be able to add this:
            add_action(‘genesis_loop’, ‘genesis_standard_loop’, 6);
            to page_blog.php or whatever template you’re now using for your blog (home.php perhaps) it’ll output page title and content before the archive.

          • Bill Erickson says

            As you’ve figured out, the Posts page isn’t actually a “page” when it comes to WordPress.

            Pages are a type of singular content, like individual posts, or a single event if you have a custom post type called Events.

            WordPress also has dynamic archives, which list singular content. The blog posts page lists the most recent posts. A category archive lists recent posts in a specific category. Etc.

            When you specify a page to act as the Posts page, you’re really telling WordPress “when you visit this page, don’t treat it as a page. Treat it as a dynamic archive, listing my most recent posts”. So the content you enter in Pages > Blog is not shown.

            To fix this, open your home.php and place something like this (without the < ?php):

          • Jeremy says

            Thanks for your replies. @Jon, I *do* know how Dynamik works, and this is definitely nothing to do with Dynamik – it’s a Genesis issue. Also, adding the “add_action” entry that you referenced to the home.php template file, does not work when the blog posts page has been set at Settings > Reading, which is the method recommended by Bill in this article. πŸ™‚

            @Bill, your Gist isn’t quite right I’m afraid – I tried it, but it inserted the title and content of the first post itself into the top of the Blog page, rather than the title/content of the Blog page itself! πŸ˜‰

            However your Gist got me going in the right direction, and I’ve ended up with the following instead, which works just fine:

            Do you think I’ve written that the best/most optimal way, or do you have any suggestions to improve it? (I’ve changed the class names to suit my own theme’s existing styling).

  26. Chris Reed says

    So the child-theme I am currently working in has a front-page.php but doesn’t have a home.php for the blog page. So should I create a home.php for the blog page so I don’t have to use the page_blog.php template.

    I see how there can be a problem since some of the conditionals I’d like to use on the blog page don’t really work using the blog page template.

    Thanks for the great post!

    • Bill Erickson says

      You don’t need a home.php file. WordPress uses the template hierarchy to determine what template to use for certain pages. It’s similar to how you don’t need a category.php file to have a category archive page. It will just look at archive.php, then index.php.

  27. Chris Reed says

    I changed my Settings>Reading settings and everything is working great for the most part. I had one small issue where my front-page.php was checking for is_home() and was causing some issues, but adjusting the conditional it to is_front_page() worked great.

    The only problem I’m having now is that my front_page.php uses the genesis_grid_loop() function to display recent posts on the home page. When I set the static home page to ‘Home’ instead of displaying the recent posts, it is just displaying a link to the page ‘Home’. Any idea whats going on there (screenshot below)?

    Thanks for the great post.

      • Chris Reed says

        I think it most likely has to do with the Genesis Grid Loop on the front page. It seems that for some reason when a static page is set to the home page the grid loop wants to return the static page instead of the latest posts.

        //* Add widget support for homepage if widgets are being used
        add_action( ‘genesis_meta’, ‘minimum_front_page_genesis_meta’ );
        function minimum_front_page_genesis_meta() {

        if ( is_front_page() ) {

        //* Remove entry meta in entry footer and Genesis loop
        remove_action( ‘genesis_loop’, ‘genesis_do_loop’ );

        //* Add Genesis grid loop
        add_action( ‘genesis_loop’, ‘minimum_grid_loop_helper’ );

        //* Genesis grid loop
        function minimum_grid_loop_helper() {

        if ( function_exists( ‘genesis_grid_loop’ ) ) {
        genesis_grid_loop( array(
        ‘features’ => 0,
        ‘feature_image_size’ => 0,
        ‘feature_content_limit’ => 0,
        ‘grid_image_size’ => 0,
        ‘grid_content_limit’ => 750,
        ‘more’ => __( ‘[Read more]’, ‘minimum’ ),
        ) );
        } else {


        • Bill Erickson says

          genesis_grid_loop() and all the other *_loop() functions in Genesis are designed to operate on the main query of the page. When you’re on a static homepage, that main query is the page called Home.

          Try adding ‘post_type’ => ‘post’ to your arguments. Not sure if it will work, but it might.

          If it doesn’t, just build your own custom query. I think that’s much easier than using grid loop Genesis provides.

  28. Odell McCants says

    Thanks for this article. After finally setting up my site, I’m struggling with what I thought would be the easiest part – getting my posts to show on my blog page. I’m still not quite clear as to how to get this done. Here is my current setup:

    I have a static home page
    I have a page titled Blog/Podcast
    Blog/Podcast is set to “Default Template” (changed from blog template after reading this)
    Under Settings > Reading, Front Page is “Home” and Posts Page is “Blog/Podcast”
    What appears on the blog page are the sample blog posts that loaded with the theme and not my post I created.

    What do I need to change?

    • Bill Erickson says

      Only posts that are created in the backend will appear in your blog. Did you import the sample posts? Go to Posts in the backend and delete the posts you don’t want displayed.

  29. Carla says

    Hi Bill . . .

    Just a follow up question.

    With your help I successfully made the front page its own page and set it to static. Below the banner widget I created, I am seeing Home (the page title) and some blank space. This is expected from a page, but I’m only using widgets for the front page and would like to remove that section.

    I can set .site-inner to display as none, but that removes it from every page. Is there a more elegant way to do this?

    Many thanks!


  30. Michael Gordon says

    Hey Bill – Just came across this awesome post.

    I have my Reading settings as follows:

    Front page displays: A static page.
    ——–> Front page: Home
    ——–> Posts page: Blog

    When I’m on the Edit Page screen of my Blog page and I click the “Preview Changes” button to the right, the URL that’s displayed looks like the blog page i.e.…

    BUT the actual page content that is displayed on screen is that of my Home page (i.e. the Front page) found on the public page Is this ‘normal’ behavior?

    Prior to reading this post (as a non-coder) I would have expected that clicking the Preview Changes button on the Blog page would display the Blog page (seems logical) – not the Home page (seems illogical)… but now I’m wondering if this seemingly illogical behavior I’m experiencing is actually the normal behavior for WordPress given my Reading settings. (Note that I’m not using Genesis in case relevant).

    Appreciate your comments as to whether this is indeed ‘normal’ or if this indicates some sort of problem going on.



    • Bill Erickson says

      It might be a bug in WordPress itself. I created a blank WordPress site, created a Home page used for home and a Blog page used for posts, and previewing Blog showed me the Home page.

      But I’m curious, what’s your use case here? Preview only works before a post/page is published. After it is published, preview just shows you what’s already published. I can’t think of an instance where I’d preview the blog page, or any published page for that matter.

      If I post this on WordPress’ bug tracking site, I’ll need some details on what the expected outcome is and why you’d want to do that.

      • Jeremy says

        FWIW, I just tested this and experienced the same “bug”: getting my home page when I hit Preview while editing my Posts Page.

        Bill, I’m not sure I agree about how the Preview button is supposed to work, though. πŸ™‚ For me at least, the Preview button works just fine for pages that are already published (other than the blog page as noted here).

        So if I go to “Edit” an already-published regular page, and make some changes, and hit Preview, I get the special preview URL (with all the parameters at the end of the URL), and it shows the unpublished changes I’ve made. I assume that’s the intended outcome, and it’s certainly a very useful feature, to be able to see how changes will look on a page before I click the Update button to publish those changes.

        • Bill Erickson says

          Hmm, that’s interesting since you can’t save a “draft” of a published page. The auto-draft functionality must be running on published pages as well. I guess I haven’t tried that before.

        • Michael Gordon says


          As per Jeremy’s comment: “…and it’s certainly a very useful feature, to be able to see how changes will look on a page before I click the Update button to publish those changes.”

          This is exactly my use case for the Preview Changes button. I find it particularly useful for the Blog page during the initial site development, so that I can play around with different layouts, etc. and preview them without having to hit Publish each time.

          Interestingly, upon some further research I found what appears to be (thus far) a solution to the ‘bug’ of WordPress displaying the homepage content when previewing the blog page:

          In Reading settings, I set my Posts page to ‘blank’ (i.e. – Select -) – not Blog… and all seems to be working as expected now: Not only can I now preview my blog page, but changing the Reading setting to blank also appears to have resolved another (seemingly) related issue I was having with my XML sitemap in Yoast WordPress SEO.

          My Blog page was showing in both my ‘Page’ sitemap and my ‘Posts’ sitemap – but it should be appearing in my Page sitemap only; now it does.

          Thus far I haven’t seen any issues with leaving the Posts Page set to blank, but if I find anything I’ll let you know. Keep in mind that for this particular site I’m not using Genesis; I’m using Divi Theme by Elegant Themes (in case that matters).

          Thanks again Bill, and Jeremy.

  31. Dave says

    Hi Bill,
    Here’s a slightly obscure case for your possible amusement.

    I have a custom field to show a bit of content on a Pages or Post above the loop. It works just great, except when I designate a static Page as the Posts Page (i.e., the standard WP setting for that). However, if I do choose the Genesis Blog Page Template, it does show up. This is whether I use stock get_post_meta or the proprietary genesis_get_custom_field.

    Ciao, Dave

  32. Ken says

    Does this apply only to older Genesis child themes or to them all. If all, is this why I can’t have a custom sidebar on my blog page?


  33. Hamayon says

    Bill I’ve heard a lot about the genisis and a lot of friends of mine are very proud to use genisis framework on all of their blogs but seriously I have never liked it and never use it. Thanks to you for your this blog post, now I will never use it πŸ™‚

    • Bill Erickson says

      I’m sorry you interpreted my post that way. In my opinion Genesis is the best theme framework on the market, and it’s what I build all of my clients’ sites on. This post does not discourage the use of Genesis, simply recommends you don’t use a particular feature that’s there for legacy reasons.

  34. Mark Hemmingson says

    Hi Bill – Thanks for this post. I’m a little late to the party but I just want to clear up my fuzziness around the blog page.

    I have an HTML5 child theme, Magazine Pro, with a front-page.php. This is how I set it up, which seems to work fine.

    Reading >Settings: Static Page
    Front Page: Home… This causes front-page.php to be called as the Front Page of my site.
    Posts Page: Blog… I created a page, called it Blog, and used the default template. This causes my Blog Page to work in the WP way, using standard WP hierarchy.

    So, now if I want to alter my Blog output I could copy the home.php from Genesis, paste into my child theme, and make all changes in the new home.php in my child theme.
    Is that correct?

    • Bill Erickson says

      Almost! You don’t need to copy any files from Genesis. Just create a file in your child theme called home.php with the following in it:

      You can then add whatever you like to change above genesis();

      Genesis doesn’t have a home.php file. Instead of specific template files, it just loads the genesis() function which then runs through all the hooks. So when you’re creating template files in your child theme you just create a file with genesis() in it and then add your additional code. This way you don’t have to worry about your custom template files getting out of sync with Genesis

  35. Chris Mower says

    Hi Bill,

    First off, thanks for all your great content. I wanted to just chime in here (although I’m a little late to the party), but I noticed that one of the benefits to using the Genesis Blog page template instead of WP’s default ‘Settings > Reading > Posts page’ setting is that it allows users (clients specifically) to exclude categories by ID via the ‘Genesis > Theme Settings > Blog Page Template’ option without having to get into the code and risk blowing things up, so to speak.

    As far as I’m aware, the only way to exclude categories otherwise is to write a function to do so, and then if a client ever adds new categories or whatever else, you have to go in each time and alter the function.

    Do you have any thoughts on that?


    • Bill Erickson says

      Out of the box, no, there’s no way to exclude categories from the blog without writing code or using a plugin.

      The simplest option (in my opinion) is to edit your theme’s functions.php file and customize the query. I’m sure there’s a plugin out there that will do this for you as well. It doesn’t need to be Genesis specific since the blog page is a core WordPress feature.

  36. Paula G says

    Interesting post to read here. I recently inherited a site to maintain. The client has the Home Page with the latest blog posts and also has a Blog page with latest posts. They are separated out because she wants a different sidebar on the home page than on the blog page.

    This is using Genesis and eleven40 child theme
    To accomplish this The Blog page is the “recent posts” page in settings and uses the blog template
    The home page is a page using the blog template and the “Home” in settings is set to this home page.

    It all works fine EXCEPT the previous/next links do not work on the home page (they do work on the blog page) – because WordPress generates the Previous/Next links and must have it set with a /blog within the URL. The home page is missing that and thus the links fail.

    I am pulling my hair out a bit trying to find an easy programmatic solution to this. Do you have any thoughts?

    • Bill Erickson says

      Personally I would create a custom page template for the home that lists the posts, and instead of having pagination at the bottom have a button that says “Read more in our blog” which takes you to the actual blog, or page 2 of the blog.

      A simpler but less clean way is to use the setup you currently have, then conditionally remove the pagination from the front page, then hook a function after the loop to display the button (both of these from functions.php since you don’t have a template in your child theme for the homepage).

  37. Chad Williams says

    Hi Bill, great info.

    My question piggy backs off this post and since you made the Title Toggle plugin I’m sure you have the answer.

    So I’m displaying the blog page using WP and not page_blog.php. The client however wants the h1 for this page to be visible. How would you go about doing this?

  38. Jordan Smith says

    Hey Bill,

    I’ve started following your recommendation here but noticed that I have to also set a “Home” Page or the blog shows up on the home page instead of the content being output by front-page.php.

    This isn’t that big an issue in an of itself but I noticed when I do this the home page logo gets downgraded from an tag to a tag by genesis because it’s now serving a page. Is there a way to force the tag for the home page if using an actual page? Thanks man!

  39. Brian says

    Bill, I think I’m on the right track for fixing my site that’s about four years old. I’m using the Genesis Corporate Child Theme and I have the front page set up with widgets and a separate blog page. Everything works fine on the desktop without changing the Reading settings to a static front page, but I am trying to make the site mobile compatible using a plug in (I’ve tried a few different ones) and my blog page is blank on the mobile site.

    I can change the Reading settings to a static front page (but not choose anything) and set the blog page to /blog, but I get a white border on the front page and some content gets cut off. Otherwise, I don’t know what page to choose as the static front page.

    I tried changing the name of home.php to front-page.php and then changing the reading settings, but then my home page just shows the blog.

    Is there any way to keep the widgets on the static front page and get the mobile site to show the blog page? I’ve tried most of the options you’ve suggested above with no luck. Hopefully I am missing something simple.

    • Bill Erickson says

      Create a page called “Home”, then go to Settings > Reading and set “Home” as the front page and “Blog” as the posts page. This should fix it. If you’re still having trouble with the front page display, you might need to hire someone to look at your specific problems and fix them. is a great service for that type of work.

      • Brian says

        Thanks Bill. I gave this a shot and now it has the blog on the front page and the front page on the blog page. It still has the same white frame issue as well. I will check out the link to see if I can find someone to help. Thanks!

  40. Randall says

    Hey Bill:

    As everyone before has said (and the functions.php to Minimum Pro): props dude.

    Context: Magazine Pro; Settings > Reading > Blog page chosen rather than Genesis Blog page template.

    Question: If I want multiple blog-style pages for each respective category, etc., Genesis functions.php permits this. Your post argues against adopting this with the caveat that the HTML 5 themes ‘should’ be fine.

    Is there a better solution than the native Genesis approach? By extension, would I need to add something to the child theme functions.php?


    • Bill Erickson says

      WordPress already provides blog-style pages for each category. It’s[category slug].

      If you’d like a different category archive page, can you provide more details about the context? Why is the existing category archives insufficient?

      • Randall says

        Hey Bill, thanks for the reply.

        I may not have correctly articulated my question.

        In Genesis, one needs to choose the “blog template” in the lower right quadrant of a page editor before publishing in order to render the blog effect. This is necessary even if one chooses a/the blog page under Settings > Reading > Posts Page.

        Building on this, if multiple blog-formatted pages are desired (for categories in this case), the only approach I see without functions.php surgery is to choose the blog template in the page editor and then create a custom class: query_args and then value it to the corresponding category.

        I understood your article as disfavoring the use of the blog template included in Genesis. If the approach I outline above is not optimal, do you recommend an alternative that is accessible/simple. or is the above cool on the HTML5 themes?

        • Bill Erickson says

          No, you do not need to select “Blog Template” if you are using Settings > Reading. When you specify it in Settings > Reading, WordPress ignores any content that’s on that page (including the selected page template), and instead does a query for latest posts.

          WordPress also automatically creates dynamic archives for categories, tags, authors, dates (year, month and day archives), and other things. You do NOT need to create pages for each category, and then select a page template. All you have to do is create the category, WordPress does the rest. Your category archive will be accessible in /category/[category slug], assuming you haven’t changed the category base permalink in Settings > Permalinks.

          On all the themes I build, I actually remove the blog page template so it isn’t available to clients. The code is included in the last line of the post above.

  41. Derek Magill says

    Hey Bill,

    Do you know if there’s a way to display content on the latest posts homepage, above the posts?


    To set a blog page template as the front page but display the page content instead of just the posts? I can do this on a standard blog template page but I can’t (from what I gather) do it if I set the blog template page as the front page.

  42. Jamie Mitchell says

    Hi Bill

    if setting a static page as the home page (in readings > static page)

    and, i also want that page to use a custom template (i may want widgets areas or a second loop on the page as well as the page content)

    should i still use front-page.php or a page template name, like page-front.php ?


    • Bill Erickson says

      You don’t have to use front-page.php for your front page. That’s just the first template in the hierarchy.

      Here’s the hierarchy for a static front page: front-page.php > Page Template > page-$slug.php > page-$id.php > page.php > singular.php >index.php

      WordPress starts at the top of that list and works its way down. Once it finds a template file that matches, it uses that. So by default a front page might use the same page.php file as any other page. If you create a page template and set that front page to use the page template, that overrides page.php. If you create a front-page.php, that overrides whatever page template you have selected.

      • Jamie Mitchell says

        awesome, thanks Bill for clearing that up

        you explains things in a way that even i can understand πŸ™‚

  43. SWahl says

    For client site, using News Pro, have a front-page.php file and set blog page to a page using WordPress settings and front page to a blank page as detailed in previous comments. All works well but one thing. Have categories renamed as articles, and when you go to the main article/category page the next buttons to go to the next page of articles breaks and gives me a 404.

    Anything here I’m missing? Is it because I renamed the category to something custom?

    • Bill Erickson says

      Are you saying you changed the category slug from /category to /articles? If so, there isn’t supposed to be a page at /articles on your site. There are only category archive pages for each specific category; e.g., /articles/category-name.

  44. Michael Einstein says

    Hey there..

    I am new to Genesis (not WordPress), and working on moving my site to Genesis using the Eleven40 Pro child theme on a sandbox site.

    So far, making progress, but one question..

    On the Eleven40Pro Blog page, it always displays my first blog post as a full page post, and then the rest of my posts show up with thumbnails and excerpts…

    How can I change it so that the it doesn’t do that for the first post.. and just displays a list of thumbnails and excerpts…

    My current theme has an “option” to display the first post as a full page post or not, but don’t see any such option In Genesis or the customizer for Eleven40 Pro.



    • Bill Erickson says

      I haven’t used the eleven40 theme so am not sure how they are doing that (that’s not a Genesis feature). I recommend you contact StudioPress support.

    • Chandan says

      Hi Michael,
      I faced the same problem like you and solved it. One of my clients wanted to get rid of the grid layout just like you want. All you have to do is rename your home.php to home-old.php

  45. Oluwatoyin says

    I want to display the page title of the Blog page like you do here. How do I do it? Genesis themes do not show the page title.

  46. Rob says

    Hey Bill,

    I broadly agree with the idea of doing it “the WordPress way”, and understand the limitation the Blog Page template has regarding the main query.

    But I think there are some cases and reasons why it could be useful to keep the Blog Page template around…?

    For starters, using the reading settings means that you have to create a ‘stub’ page for the homepage as well as one for the blog page. This can be really confusing for admin users, especially in the most recent Genesis themes which have a widgetised homepage, as they see an edit link on the homepage which goes through to a “blank page” if they try to use it.

    It also makes the homepage more vulnerable, as if the stub homepage is ever (accidentally) deleted then WordPress defaults to showing the blog in preference to the widgetised page.

    That aside, I think the main reason it is useful is to very quickly and easily create a category page (i.e. an archive style page where the slug is /the_category rather than /category/the_category) , without messing around with custom post types.

    And the main query limitation isn’t such as killer, as Genesis lets you customise the query for this template out-of-the-box using a “query_args” custom field.


    • Bill Erickson says

      You bring up some good points. But I think the “confusing” user experience is actually caused by mis-using widget areas for the homepage. Widget areas should be site-wide content, like a sidebar or footer. If there is content that belongs only on one page (like the homepage), you should be able to edit it by going to Pages > Home.

      I never use a widgetized homepage for my clients because, as you say, it’s really confusing. I create custom metaboxes that allow them to edit all the homepage content from the homepage.

      There’s a few reasons I think StudioPress uses widgets instead of custom metaboxes. First, it’s less work and less code. It’s much easier to write genesis_register_widget_area() than to include a metabox library like CMB2 and then write a function that builds the metaboxes. Second, when you change themes all your current widgets will show up in “Inactive Widget Areas”, so if you go from one StudioPress theme to another, you can then reassemble your homepage using the last theme’s widgets.

      But if your goal is to craft the best user experience for the website owner, a widgetized homepage is not the solution (IMHO).

      • Rob says

        I guess what I’m saying is that the advice depends on the audience…

        If you are creating a customised template from scratch for a client, then I absolutely agree that avoiding a widgetised homepage and the blog page template is going to deliver the best website owner experience overall. No question about it.

        But if you are a website owner just tweaking one of the pre-built genesis themes to suit your needs – as seems to be case for many of the commenters here – then I think it probably makes more sense (i.e. simpler) to stick with the blog page template as supplied by StudioPress … unless you need something that can’t be achieved using the “query_args” custom field.


        Ps – BTW, I really like your custom metabox approach, it makes a lot of sense.

  47. Jamaluddin Rahmat says

    Hi Bill,

    Your published post was 1 year ago.
    What do you think about Genesis right know?

    Still under development or…. ???

  48. Lindsay says

    Hi Bill,

    It’s me again from your page on An Easier Grid Loop.

    My home page no longer loads — it is blank. Here’s what I’ve done:

    I renamed “home.php” –> “front_page.php”
    I renamed “blog_tempate” –> “home.php”

    I went to my Readings settings and set the home page as static with the Posts Page as “blog” and the Front Page as “Home.” On both the “Home” and “Blog” page I set the template to “Default.”

    I want my front page to display all the widgetized areas that came with my theme: Ally. What am I doing wrong or what do I need to tweak?

    Thank very much for your support!

      • Lindsay says

        Hi Bill,
        After many hours of frustration, a friend pointed it out. I had a typo in how I spelled “front_page.” Now the plug-in works beautifully. Thanks for your help and for the ongoing support! Much appreciated.

  49. Rose says

    Hi Bill. Your article got the blog page working, but now my static home page is not working. Here’s what’s going on…
    Settings/Reading: Static Front Page
    Front page: Home
    Posts page: Blog

    The site was originally built using a widgetized home page, but now has a real home page. Putting in a real home page made the blog display the old widgetized home page. I renamed home.php to front-page.php and the blog works just like it should. However, now the home page displays the old widgetized home page and not the page that is set in Settings/Reading as the static front page.

    I’m kind of lost here, trying to figure out what to do next. Any help you can give me would be great! This is a live site and the client needs the new front page to work.

    • Bill Erickson says

      If you’re not using the widgetized homepage, either delete that file (now called front-page.php) or rename it to anything other than those two names (ex: old-home.php).

      home.php is what WordPress uses for your blog’s homepage. So when you had the widgetized page named home.php, that displayed instead of the blog.

      front-page.php is what WordPress uses to display the front page of your site. So when you had the widgetized page named front-page.php, that displayed instead of your homepage.

      • Rose says

        Thanks for the quick response! I totally don’t understand it, but I renamed the file and now there is no home.php or front-page.php file in my theme folder, and the site works just perfectly! Thank you again!

  50. Johnny says

    Hello i have a question that you may know the answer to! I am using the genesis and the executive pro theme. My logo is correct on the whole site and is transparent. The only page it is not is on my blog page, which I have assigned via Reading Settings. It shows a background on it that i am using on much of my site, like in the menu, titles areas and so fourth! I can not for the life of me figure out how to correct the issue. I figured if anyone in the world that may know would be you! Thanks so much for sharing so much experience also!
    Thanks Johnny

  51. Johnny says

    Thanks so much Bill.. that css did the trick!
    Thanks Tony, no probs,…
    The only other issue I am having with Genesis is my featured page widget!
    It isn’t showing the title or text on the homepage, it does show the title on all other pages but not the text!
    I am using it in the footer on the right.
    Executive Pro ThemeVersion: 3.1.2
    GenesisVersion: 2.1.2
    I wonder if there is a bug that is related to the versions I am using. I have checked my css to see if there is an issue, but it seems fine. I can’t figure this one out either!
    I know I found a bug on another clients site using a newer version genesis with Executive Pro ThemeVersion: 3.1.2 theme and had to revert back to the older version Genesis. His Blog post were not showing on his blog page!
    Any help is much appreciated!

  52. Ashley Rader says

    This is great info – thank you Bill! Question for you, based upon this information. Is there a way to show a description or some custom content above the posts display? Almost like using a pagebuilder type layout where I can do an intro paragraph and some graphics and then show the blog post listings below that? Not sure how I can do that without modifying functions when using the front page blog post template as part of the static homepage or static blog page…

  53. therarecommoner says

    You have definitely struck a cord with this article – looking at the long long comments. Kudos to you for sticking it out and engaging with your commenters. The problem description you provide “The problem here is now you can’t have a blog. If you created a page and set it as the blog in Settings > Reading, it would use the home.php file which is now a static homepage.” was pretty hilarious for me as I had to learn this through experience. I was flabbergasted and was JUST beginning to look into how on earth to dig about the custom loops to get what I wanted. This is a much more expected workflow and thank you for posting on it. Now to dig into the comments to learn the common issues when dealing with this framework.

  54. Marijn says

    Hi Bill, thanks again for the great content. I’m sorry to bother you with this probably stupid question .. I just changed my site to magazin pro again and can’t figure it out. I have my static homepage and blog page set up in settings-reading. Then uploaded a random image in my homepage but it still shows the blog template with sidebar (my main settings are full width). I just want to have a couple of images on my homepage which I can redirect to other pages.
    Is it a bug or am I totally missing something here?

    • Bill Erickson says

      I recommend you contact StudioPress support. I don’t have experience with all of their themes so can’t provide specific guidance.

  55. Phil says

    Hi Bill
    A great article. I am new to WP and was confused about when and where templates and settings affected outputs.
    What sort of settings can I put in home.php? Would this be a good place to narrow the blog pages from full width? I want the setting to apply to all blog pages.

  56. Phil says

    I am using Altitude Pro child theme and have increased site-inner to make most pages full width. On the blog page I want to run about 70% width + have sidebar with calendar, categories etc

  57. Jim says

    I am so glad I saw this post. Two of the recent post, since the update to the latest Genesis, were not showing up in the blog page which was using the blog template. However, as soon as I created a blank Home page and used the Settings > Reading the right way, the posts showed up. I did not change anything in the theme files. The theme was already using front-page.php so the latest version of Genesis must have caused the post to not show up. Is there another explanation?

  58. Jono Farrington says

    I have a newbie question. What I want to do is replicate the current home page (static front page in settings), to an inner url i.e, and then set this to the home page.

    Is there an easy to way to replicate the widgetized homepage?



    • Bill Erickson says

      A front-page.php file is only used for the front page of the site. But if you name it something else, like template-home.php and add /* Template Name: Home */ at the top of the file, it will now be a page template available for any page. When editing a page, in the right column you can select what template is used.

  59. Zach says

    Programmed a custom blog page template for my client per your advice, but now Feedburner can’t pickup the blog page template I assigned unless I use the Genesis Default Blog Template. My template doesn’t seem to overwrite that functionality in the wordpress backend. Is there something simple you know I should do moving forward?

    • Bill Erickson says

      I’m surprised the blog page template worked with Feedburner. I thought WordPress core provided the RSS feed URL in the document’s head based on the posts page as set in Settings > Reading.

      I haven’t used Feedburner in years though, so maybe someone else can provide guidance.

      • Zach says

        Sorry for the waste of time. In order for that to work you need to use home.php as the file name in the genesis child theme AND assign the reader settings as well. Once I updated the file name Feedburner tapped in immediately. SORRY!

  60. David Hedley says

    Hi Bill,

    As a starting point for home.php, do I just add genesis(); and nothing else (apart from any customisations of-course).


    • Zach says

      In my experience you can use the default genesis loop for the blog loop, but it doesn’t look very appealing by default. This was the most recent project I did, while modifying the loop. There is only one post for them so far, but as the continue to post it will produce the same results underneath and style them accordingly. With the right CSS and php you can get some pretty appealing results.

    • Bill Erickson says

      Yes, that’s all you need. Think of the home.php file as a functions.php that only applies to the blog homepage.

  61. Alexander says

    Hello everyone!
    I have created my front-page.php using the guidance provided by Bill in the above post.
    I have created the dedicated stylesheet that has all of the styles that apply to that front-page.

    Now I’m stuck with adding Media Querries to that new stylesheet. The querries simply don’t work!
    Where should I use them? (original style css that applies to the child theme? or that new stylesheet dedicated to front-page.php?) Should I add vieport support into the new front-page.php?

    Media Querries worked fine before I decided to create that front-page.php


    • Bill Erickson says

      Why create a separate stylesheet? You can just add them all to the main stylesheet. Use the .home body class to limit them to the homepage.

      Whether you use one or two stylesheets, media queries should work the exact same in both. Add this to your stylesheet to target screens smaller than 768px:

      @media only screen and (max-width: 787px) {
      // your mobile styles go here

  62. Corey Tat says

    Hi Bill,

    I was frustrated for months on how to fix this issue. I was using the Magazine Pro theme for Genesis.

    Your post was very detailed for me to include my blog posts on my home page.

    Thanks a million!

  63. VipiN infoBee says

    While searching for how to build custom front page for my genesis child theme i reached here. Your replies to comments helped a lot. Thanks

  64. Komal Barde says

    Hi all,

    I am using Minium-pro theme with Genesis.And I have done below setting for Reading:
    Front page setting: Your latest posts

    For this setting the home is getting displayed as I excepted , but the Blog page is apperaing blank.

    And if I change above setting to as follow:
    1) Front page setting: Static pages
    Front page: Home page
    Blog page: Blog page

    The Blog page lists all latest post , but on home page it is not displaying the blog list and other content like slider on home page is coming properly.

    Please tell me if I have missed anything.

    Thanks in advance,

    • Bill Erickson says

      Take a look at the actual files in the theme. A home.php will always be used for the blog, so if you have the blog on the homepage it is used there, or blog on separate page it is used there. A front-page.php file is always used on the front page (whether or not it is a blog).

      My guess is the homepage you want is using a home.php file. Renaming it to front-page.php will let you use it on a static front page.

  65. Bohan siril says

    Was having doubts on whether to use a front page template or leave it as it is. I was also using the Genesis theme. After reading this, I think, I should have a second look at it.

  66. kevin says

    Here is a question I did not see addressed in the comments. I have a site with two distinct blog pages, meaning two separate templates. When I write a post, I select from a metabox which template that particular post will utilize. In my menu I have separate links to each of these blogs.

    So, is there a way to implement the advice of your post in this situation? Should I have structured this differently? (If I assign only one of these pages as the “posts” page, what would happen to the other?)

    I chose to do it this way so that I could utilize the same categories for posts while not still having control over which page it would appear on…but your article has caused me to second guess that approach.

    Any suggestions would be welcome.

    • Bill Erickson says

      What you’re describing is a perfect use for a taxonomy. You could either use one of the built-in taxonomies (Categories or Tags), or create your own. Register a taxonomy, then each “distinct blog” is actually a term archive in that taxonomy.

  67. kevin says

    I was not aware I could create my own taxonomies…thanks for sharing that. I wonder: is there a downside to using multiple page templates? Does it, for example, impact loading speed?

  68. Stacy C says

    I realize this is an older post, but I wanted to say thank you! I was getting frustrated trying to figure out why my blog posts were not showing on the posts page. This solved my problem. I appreciate you sharing your knowledge.

  69. sourabh verma says

    Thanks a lot for the info, actually i am using Genesis on my blog and i was wondering with this issue since long. but your post gave me the solution.

  70. Thiago says

    Just came to thank you very much. Renaming home.php to front-page.php solved the loop problem (when I clicked page 2, 3, etc, it kept showing the same posts).

    Thanks a lot for helping a complete newbie.

  71. Anthony says

    Thank you Bill,

    Once again you provide the best and most well considered solution out there. Your simple home.php that enables page title & content to be inserted before the loop works great. However, Beaver Builder does not want to edit the page – would love if there was a clean way to hook into BB and remove that block.

  72. Beth Larson says

    After doing this, I an unable to disable the page title for the blog page. Your plugin works on everything else.

    • Bill Erickson says

      The Genesis Title Toggle plugin only works with singular content (pages, posts…) not with archive pages. You’ll need to modify your archive template if you want to make changes to the blog archive.

  73. Ana says

    Hello Bill,

    I am using a custom portfolio page template ( on my website to show off my portfolio items in a grid. Every post I publish is displayed in the grid as portfolio as you can see. But the problem is that now whenever I publish a post it shows up as portfolio, not on blog page. Is there any way to separate blog posts and portfolio items? I want to create a separate blog page and use that for non-portfolio posts.

    Waiting anxiously for your answer!

    Thanks in advance.

    • Bill Erickson says

      It looks like that tutorial is using the “Featured Posts” widget for the output. In Appearance > Widgets > Page – Portfolio, you can customize its settings. If you haven’t done so already, create a category called “portfolio”, put all the portfolio items in it, then in the widget settings limit the results to only the Portfolio category (first dropdown in the widget).

      But personally, I don’t think this is a good approach to implementing a portfolio. Portfolio items should be in a separate post type, not simply a category in your blog. Here’s a tutorial I wrote on adding a portfolio to a Genesis child theme.

  74. Amy Woods Butler says

    Any advice on setting up basically two blogs on the same site, one for written blog posts and one for podcast episodes? Apologies if you covered this already!

    • Bill Erickson says

      There’s three ways you could approach it:

      1. Create a “blog” category and “podcast” category, and use the category archive pages as the “blog”. You could also specify an actual blog page (mix of blog posts and podcasts), or not – by leaving the “Posts page” dropdown empty in Settings > Reading.

      2. Create a “podcast” category and exclude it from the main blog query (example). Use the podcast category archive as the “podcast blog page”.

      3. Create a custom post type called “podcast”. The main blog archive is used for all content in the ‘post’ content type, and the podcast CPT archive page is used for the podcast blog.

  75. Chris says

    I’m currently using the Geneisis grid loop to display my recent blog posts on my β€˜front-page.php’ template. The problem when I switch my front page to β€˜home’ is instead of displaying my recent posts it just displays the page title in the loop. Any suggestion on how to modify the loop on front-page.php to still show my recent posts in the grid loop?


    • Bill Erickson says

      It sounds like a theme issue. Look at the home.php and front-page.php files in your theme and what’s in them.

    • Bill Erickson says

      There’s a few ways you could approach it.

      Option 1
      If you’re only going to have “blog” posts and “podcast” episodes, create each of those as a category and use the category archive as the hub for each. You don’t have to set any page as the main blog page unless you want a single archive that has both blog posts and podcast episodes.

      Option 2
      If you’d like to have multiple categories in the blog, create all those as categories, plus a podcast category. Use the main blog page for the blog and the podcast category archive for the podcast. You can customize the WordPress query on the main blog page to exclude the podcast category.

      Option 3
      If both the content creation process and the display will be totally different for podcasts, you might consider building them as a custom post type. The ‘post’ post type will be used for the blog, and the ‘podcast’ post type will be used for the podcasts.

Leave A Reply