Dzięki pomocy tutaj udało mi się dodać niestandardowe pole wyszukiwania do mojego menu głównego ... dodając to do funkcji mojego motywu. 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>";
}
Jednak dodałem teraz inne menu do wstawienia w stopce, ale pole wyszukiwania również zostało dodane do tego. Jak dodać pole wyszukiwania tylko do menu głównego?
Mój kod do rejestrowania menu to:
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'twentyten' ),
'secondary'=>__('Secondary Menu', 'twentyten' ),
) );
... a kod do wyświetlenia menu pomocniczego to:
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) );
10, 2
kod?10
jest priorytetem (domyślnie jest dziesięć),2
jest liczbą argumentów, które funkcja, którą przechwytujemy, aby zaakceptować filtr.Alternatywną metodą tego jest dodanie slugu menu do filtra wp_nav_menu_items.
Załóżmy na przykład, że masz menu o nazwie Nagłówek i zawsze chcesz, aby to menu (niezależnie od tego, czy jest dołączone do lokalizacji motywu, czy nie) wyświetlało pole wyszukiwania. Możesz to zrobić, dodając ślimak menu, w tym przypadku
header
, do filtra.Nowy filtr wyglądałby następująco:
Zwróć uwagę na
header
część nowego filtra. To powie WordPressowi, do jakiego menu dodać funkcję.To tylko jeden inny sposób podejścia do obecnego problemu.
źródło