The default situation in WP is that the front page is a blog, which shows up as ‘Home’ on the navigation menu. The rest of the navigation menu lists your (top level) pages in alphabetical order. So every time you create a page, as opposed to a post, it gets added to the navigation menu, to the right of the ‘Home’ page. This is usually not what you want. You may for example want to have a static page as your front page, with your blog showing up elsewhere. You will almost certainly want to take control of your main navigation menu.
This article describes how to do both of these things:
- Make your front page a static page (if that’s what you want)
- Create a custom menu to hold just the items (pages, category lists, etc) you want
Make your front page a static page
You will first need to create a page that will be your static front page (Dashboard → Pages → Add New) if you haven’t already created one. Any page will do. Most people create a page called ‘Home’, but you don’t have to. By default, the navigation menu item label will be the title you give to this page, but you can change that as I explain below, if you want the page’s title to be something other than ‘Home’ whilst retaining the label ‘Home’ in the menu.
Next you should create a blank page (just a title with no content) that will hold your blog. Again, it can be anything, but most people create a blank page with the title ‘Blog’.
Now go to Dashboard → Settings → Reading. On the Reading Settings page, tick the ‘A static page’ check box and select the page you want to be your home page from the first dropdown list. When you’ve done that, choose the page that will be your blog page by selecting the blank page you created for your blog from the second dropdown list.
Save your changes.
Create a Custom Menu
To create your custom menu, go to Dashboard → Appearance → Menus.
If you haven’t already created a custom menu, the page will be set up to create one. If you’re creating a second or subsequent one, you need to click on the tab with the label ‘+’ in the main panel.
Enter a name for your custom menu in the ‘Menu Name’ text box: something like ‘main-nav’ is what I use.
Between the main panel and the sidebar, you will see a column of panels displaying the things that you can add to the menu. Usually, you will see ‘Custom links’, ‘Pages’ and ‘Categories’. Above all of these you will see a panel called ‘Theme Locations’, one of which will be ‘Primary Navigation’. Select your custom menu (‘main-nav’, if that’s what you called it), from the dropdown list, as the primary navigation menu.
You now need to add items to your menu. Usually you want to add pages and/or category lists. Just select the ones you want from the panels between the sidebar and the main panel and click the ‘Add to Menu’ button. When you do that, the item will appear in the main panel.
Make sure you add the blank page you created for your blog!
If you want to add arbitrary URLs, you can do that too: for a link to an external site, for instance.
You can drag and drop items around in the main panel to get them ordered just how you want them. You can even nest them.
If you want the label that appears in the menu to be different from the title of the page, just click the down arrow on the menu item in the main panel and enter a ‘Navigation Label’. So, for example, if your home page has the title ‘Welcome’ and you want the menu item to say ‘Home’, just type ‘Home’ into the ‘Navigation Label’ text input.
Now you can save your work and view your site. You will have a static front page with the label ‘Home’ (if that’s what you wanted), and the rest of the menu items you added, in the order you specified when you dragged the items around. Assuming you remembered to add your blog page, that will be there as well, with all your articles showing up in the normal way.