2012-02-25 4 views
2

Я использую wp_nav_menu(), и я хочу добавить окно поиска в качестве части меню.Добавление пунктов меню в wordpress

У меня возникли проблемы, выясняя его и надеясь на помощь:

Мой код:

 <?php 
     $args = array('theme_location' => 'primary', 'container' => false); 
     wp_nav_menu($args); 
     ?> 

Теперь я хочу, чтобы добавить дополнительный < литий > элемент в конец или в меню < уль > и все, что я хочу в < литий > является выход:

 <?php get_search_form();?> 

Можно ли это сделать?

functions.php:

add_action('init', 'register_top_menu'); 

function register_top_menu() { 
    register_nav_menu('primary', __('Top Menu', 'leeaenergy')); 
} 


add_filter('wp_nav_menu_items','add_search', 10, 2); 

function add_search($items, $args) { 

    if($args->theme_location == 'primary') 
    return $items . '<li>'.get_search_form().'</li>'; 
} 

ответ

3

Да, вы должны использовать фильтр. Добавьте следующий код в файл functions.php. Изменение theme_location на то, что создан для текущей темы:

add_filter('wp_nav_menu_items', 'add_search', 10, 2); 

function add_search($items, $args) { 
    if ($args->theme_location == 'primary') { 
     return $items . '<li>' . get_search_form() . '</li>'; 
    } 
} 
+0

попытался это, но ничего не изменилось, что еще мне нужно сделать, чтобы на месте? –

+0

Это все, что вам нужно. Попробуйте удалить оператор if и посмотреть, добавляет ли он его во все меню – Lee

+0

, проблема заключается в том, что меню не регистрируется ... Я думаю, что это просто отображение всех страниц - я, наконец, «вроде» имел меню, зарегистрированное, и я нашел другой способ чтобы сделать это, но это также представляет проблемы ... F * ing болезненный !!! Во всяком случае, я буду продолжать сражаться ... спасибо –

Смежные вопросы