Настройка только определенного меню с помощью «wp_nav_menu_items» Hook?

Благодаря некоторой помощи здесь мне удалось добавить окно пользовательского поиска в мое главное меню … добавив это в функцию my.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>"; } 

Тем не менее, теперь я добавил еще одно меню, чтобы добавить нижний колонтитул, но окно поиска добавляется к нему тоже. Как я могу добавить окно поиска в основное меню?

Мой код для регистрации меню:

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

.. и код для отображения вторичного меню:

 wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) ); 

Solutions Collecting From Web of "Настройка только определенного меню с помощью «wp_nav_menu_items» Hook?"

Чтобы добавить только окно пользовательского поиска в главное меню, вы можете передать второй параметр, предоставленный фильтром wp_nav_menu_items, и проверить, является ли theme_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; } 

Альтернативным способом этого является добавление пула меню к фильтру wp_nav_menu_items.

Например, предположим, что у вас есть меню с названием Header, и вы всегда хотите, чтобы это меню (независимо от того, прикреплено ли оно к месту темы или нет), чтобы отобразить окно поиска. Вы можете сделать это, добавив в этот header меню фильтр в этом случае.

Новый фильтр будет выглядеть следующим образом:

 add_filter ('wp_nav_menu_header_items', 'search_box_function');

Обратите внимание на часть header нового фильтра. Это сообщит WordPress, в какое меню добавить функцию.

Это всего лишь один из способов подойти к вашей текущей проблеме.