Thanks to some help on here, I've managed to add a custom search box to my main menu... by adding this to my theme's functions.php

add_filter('wp_nav_menu_items','search_box_function');
  function search_box_function ($nav){
  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>";
}

However, I've now added another menu to put in the footer, but the search box gets added to this one too. How would I add the search box to the primary menu only?

My code for registering the menus is:

register_nav_menus( array(
  'primary' => __( 'Primary Navigation', 'twentyten' ),
  'secondary'=>__('Secondary Menu', 'twentyten' ),

 ) );

..and the code to display the secondary menu is:

wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) ); 
link|improve this question

feedback

2 Answers

up vote 11 down vote accepted

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;
}
link|improve this answer
1  
thanks, that's great... just a newbie question - what does the 10, 2 do in the code? – cannyboy Sep 23 '10 at 14:45
2  
10 is priority (ten is default), 2 is number of arguments that function we are hooking to filter accepts. – Rarst Sep 23 '10 at 15:25
feedback

@ ampt, Yes, I tried that. It worked. almost. When I do login, my second menu links dissapear, how can I solve that?

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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