Graças a alguma ajuda aqui, consegui adicionar uma caixa de pesquisa personalizada ao meu menu principal ... adicionando-a às funções do meu tema.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>";
}
No entanto, agora adicionei outro menu para colocar no rodapé, mas a caixa de pesquisa também é adicionada a este. Como adicionaria a caixa de pesquisa apenas ao menu principal?
Meu código para registrar os menus é:
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'twentyten' ),
'secondary'=>__('Secondary Menu', 'twentyten' ),
) );
..e o código para exibir o menu secundário é:
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'secondary' ) );
10, 2
o código faz?10
é prioridade (dez é o padrão),2
é o número de argumentos que a função que estamos conectando ao filtro aceita.Um método alternativo de fazer isso é adicionar a opção de menu ao filtro wp_nav_menu_items.
Por exemplo, digamos que você tenha um menu chamado Cabeçalho e sempre deseje que esse menu (esteja ele anexado a um local de tema ou não) exiba uma caixa de pesquisa. Você pode fazer isso adicionando a barra de menus, neste caso
header
, ao filtro.O novo filtro seria o seguinte:
Observe a
header
parte do novo filtro. Isso diz ao WordPress em que menu adicionar a função.Essa é apenas uma maneira diferente de abordar seu problema atual.
fonte