Right, please excuse the stupid question.

On my new blog I want the home page to be the "home" page I've created, and not the list of articles... that's fine, I go to Settings -> Reading -> Front page displays and change Front page to Home.

But now I want /blog/ to list my articles, however I get a 404 :S

I'm a bit stuck on this one, any help would be mucho appreciated.

6 Answers 6


This depends on how the index.php of your theme is coded. If it is a standard blog index page (as it is in 2010), all you need to do is:

  1. create a page named "blog" (or whatever you fancy), no need to add any content or select any template,
  2. in wp-dashboard > Settings > Reading:
    • tick "static front page"
    • select your "home" page as the Front Page
    • select the "blog" page you created as the Posts Page,

again, it depends on the default index.php of your WordPress theme.

It may also help to regenerate the permalinks, go to wp-dashbaord > Settings > Permalinks and click "save changes" (no need to change anything). Watch for any warning messages on updating .htaccess (and update manually if required), then check again.


You need to edit "index.php" in your theme directory (wp-content/themes/your-theme/index.php), this will display all of your excerpts etc.

  • Thanks for the reply Luke :-). What do I need to edit? I want to be able to navigate to http://example.com/blog/ and list the articles, what do I have to do to get /blog to link to some code (e.g. the loop) to output some stuff. Thanks :-) Commented Oct 21, 2010 at 9:35
  • With that in mind, I don't think /blog fires index.php as it 404s, I may be mistaken though :S Commented Oct 21, 2010 at 9:37
  • You need to create a page in wp-admin called "blog" (without selecting a theme), then head to where you change the Front Page Displays.
    – traxor
    Commented Oct 21, 2010 at 9:48
  • Kirsty's is probably better. It's way too early for this. =P
    – traxor
    Commented Oct 21, 2010 at 9:51

So, you want your homepage to display intro text and then have a seperate page to display blog posts.

Probably the easiest way I would do this is create a category called blog. Add it to the menu (new in WP3) and make sure you have category.php in your theme files to display excerpts of your blog posts.

  • Hello Kirsty! You're right in that I want to have intro text on the home page and the blog posts on a seperate page. I've used the blog category with WP3 menu trick on my motorsport blog, and worked well when I didn't want to use multiple categories... perhaps I can use the category "blog"along side my other categories (e.g. "how-to" etc), then hide the blog category link... it makes sense to me :D, I'll have to give it a go and see if that will work. Thanks :D Commented Oct 21, 2010 at 9:45

The way we do this is to have a page template called template-blog.php and then create a page called "Blog" within the admin area. This way you still get WYSIWYG control over some simple elements like slug etc. Then simply select the template-blog from the drop list under "Template".

Within your template-blog.php place all your loop code etc etc in this file. Now within your admin panel you can select multiple categories and you can use the category.php templates to control how they are displayed.

  • Cheers Shane, I think that's what it's trying to say here --> weeklywp.com/2009/04/make-a-wordpress-blog-page, going to give it a go at lunch :-) Commented Oct 21, 2010 at 10:06
  • No worries mate. Yeah this is what I meant.
    – Shane Griffiths
    Commented Oct 21, 2010 at 10:17

This is a little tricky to explain. Go carefully over Settings Reading SubPanel and Creating a Static Front Page in Codex.

Basically when you set static Front page your index of posts gets pushed to nowhere. Then you can optionally create page and assign it to Posts page that will act as blog root previously acted.

On the deeper level such page will follow is_home template path in Template Hierarchy instead of regular is_page.

If I am not missing anything creating page with slug blog and assigning it to Posts page will get you what you want and that page will be controlled by template home.php (if present) or index.php (effectively site root).


This is what I did:

  1. Create a php file called blog.php (this is your blog template)
  2. Create a page called "Blog" or "My Blog", whatever you want to call it and assign the blog template to this page.
  3. Add the Blog page to the main menu
  4. Select the Blog page as posts page.
  5. Regenerate permalink.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.