I see a lot of developers that are new to WordPress get flipped around with this. By default WordPress is set to show the latest posts on the homepage, but when you are using WordPress as a Content Management System (CMS) a lot of the time you want a completely custom homepage without affecting your posts archive.

What do I need to do then?

There is two ways you can go with this. You can either create home.php in your template folder or you can set WordPress to use a static template page.

I prefer the second option as this gives you a page within the admin to use as the homepage for the site and add custom fields to for custom content. This can be done a few easy steps.

    1. Create a file in your template folder (wp-content/themes/template-name) for the homepage to use. I generally use page-home.php
    2. In that file, you can add the following comment which will tell WordPress that this file is a page template and should appear in the Template drop down box in the page editor.
    3. <?php
      /* Template Name: Home */
      ?>

    4. Now go to your WordPress admin and either create a new page or find an existing one you would like to use as the home page. Click into this page and from the Page Attributes metabox you should be able to select ‘Home’ from the Template drop down box.
    5. Now that the template is assigned to the page, we need to tell WordPress that we want to use this page as the homepage. To do this go to the Settings > Reading in the WordPress admin. From here there is a field called Front Page displays. By default this is set to ‘Your latest posts’. Select the ‘A static page (select below)’ option and then in from the Front page drop down box select the page you assigned the Home template to.

    You should be all done. Now you can go ahead a create a full customised home page for your WordPress site using the template you created in the template folder.