Customizing Only a Specific Menu using the “wp_nav_menu_items” Hook?

To only add the custom search box to the main menu you could pass the second parameter provided by the wp_nav_menu_items filter and check if the theme_location is the primary location

add_filter('wp_nav_menu_items','search_box_function', 10, 2);
function search_box_function( $nav, $args ) {
    if( $args->theme_location == 'primary' )
        return $nav."<li class="menu-header-search"><form action='http://example.com/' id='searchform' method='get'><input type="text" name="s" id='s' placeholder="Search"></form></li>";

    return $nav;
}

Leave a Comment