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 – sanchothefat Nov 3 '11 at 14:08
  • @sanchothefat I called the menu in Appearance → Menus. – humanbeing Nov 3 '11 at 14:10
  • Do you have a set static page set as your home page? – Nicole Nov 3 '11 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. – Chip Bennett Nov 3 '11 at 14:28
  • You can also achieve it using this plugin wordpress.org/plugins/wp-home-page-menu – Vinod Dalvi Mar 9 '16 at 8:14

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

| improve this answer | |
  • 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. – Chip Bennett Nov 3 '11 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? – sanchothefat Nov 3 '11 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;
| improve this answer | |
  • 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 Aug 24 '17 at 12:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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