I tried with this code:

function home_page_menu_args( $args ) {
$args['show_home'] = true;
return $args;
add_filter( 'wp_page_menu_args', 'home_page_menu_args' );

but gives me this error: Error 404 - Not Found

I would like that when I click on "Home Page" menu appears the recent posts.
And I would like to place an icon instead of "Home Page" writing.
Thank you!

  • How are you calling the menu in your template? In terms of the icon you can do that using CSS so it's not strictly WordPress related. You can get answers to that on stackoverflow.com Commented Nov 3, 2011 at 14:08
  • @sanchothefat I called the menu in Appearance → Menus.
    – humanbeing
    Commented Nov 3, 2011 at 14:10
  • Do you have a set static page set as your home page?
    – Nicole
    Commented Nov 3, 2011 at 14:19
  • 1
    "but gives me this error: Error 404 - Not Found" - this is a non-sequitur from the first part of your question. What action, specifically, gives you a Error 404 - Not Found. Commented Nov 3, 2011 at 14:28
  • You can also achieve it using this plugin wordpress.org/plugins/wp-home-page-menu Commented Mar 9, 2016 at 8:14

2 Answers 2


To add a home link to menus that you create via the menus admin area:

  1. go to the Pages box,
  2. click the 'View All' tab
  3. 'Home' will appear, check the box and click 'add to menu'

enter image description here

  • I was going to suggest this. Adding $args['show_home'] = true; to page_menu_args does two things: 1) Displays a "Home" link in the default wp_page_menu() fallback for wp_nav_menu(), and 2) adds a "Home" page option to the Pages meta box in Dashboard -> Appearance -> Menus, thereby allowing the user to add the "Home" page link to a custom menu. Commented Nov 3, 2011 at 14:30
  • @ChipBennett the 'Home' checkbox is always there in the view all tab regardless of any other settings in the theme. I've all always found it there without setting $args['show_home']. Have you observed a different behaviour in WP or have I misunderstood you? Commented Nov 3, 2011 at 18:03

If you programmatically want to add the HOME menu item in the main menu (primary) then you can do with the following code.

add_filter( 'wp_nav_menu_items', 'maple_custom_menu_filter', 10, 2 );
function maple_custom_menu_filter( $items, $args ) {
     * If menu primary menu is set.
    if ( $args->theme_location == 'primary' ) {        

        $home = '<li class="menu-item"><a href="' . esc_url( get_home_url( '/' ) ) . '" title="'.esc_attr( get_bloginfo( 'name', 'display' ) ).'">Home</a></li>';
        $items = $home . $items;

    return $items;
  • much better response, since adding the menu item directly in the WP Menus could be problematic if we try to move theme to a new host; working on a dev site; etc
    – Zach Smith
    Commented Aug 24, 2017 at 12:50

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.