Благодаря некоторой помощи здесь, мне удалось добавить пользовательское окно поиска в мое главное меню ... добавив это в 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>";
}
Тем не менее, теперь я добавил еще одно меню, чтобы добавить его в нижний колонтитул, но к нему добавляется и окно поиска. Как добавить окно поиска только в основное меню?
Мой код для регистрации меню:
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'twentyten' ),
'secondary'=>__('Secondary Menu', 'twentyten' ),
) );
..и код для отображения вторичного меню:
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) );
10, 2
код?10
является приоритетом (по умолчанию десять),2
это число аргументов, которые принимает функция, которую мы перехватываем для фильтрации.Альтернативный способ сделать это - добавить фрагмент меню в фильтр wp_nav_menu_items.
Например, допустим, у вас есть меню с именем «Заголовок», и вы всегда хотите, чтобы это меню (независимо от того, прикреплено ли оно к расположению темы или нет) отображало окно поиска. Вы можете сделать это, добавив фрагмент меню, в данном случае
header
, к фильтру.Новый фильтр будет выглядеть следующим образом:
Обратите внимание на
header
часть нового фильтра. Это сообщает WordPress, в какое меню добавить функцию.Это всего лишь один из подходов к вашей текущей проблеме.
источник