2015-08-27 2 views
1

Как я могу получить конкретный элемент из меню Wordpress? Функция wp_nav_menu возвращает все элементы, я хочу получить, например, вторую ссылку в списке.Как получить отдельный конкретный элемент из меню Wordpress

Функция:

// HTML5 Blank navigation 
function html5blank_nav() 
{ 
    wp_nav_menu(
    array(
     'theme_location' => 'header-menu', 
     'menu'   => '', 
     'container'  => '', 
     'container_class' => 'menu-{menu slug}-container', 
     'container_id' => '', 
     'menu_class'  => '', 
     'menu_id'   => '', 
     'echo'   => true, 
     'fallback_cb'  => 'wp_page_menu', 
     'before'   => '', 
     'after'   => '', 
     'link_before'  => '', 
     'link_after'  => '', 
     'items_wrap'  => '<ul class="ul-menu"> %3$s </ul>', 
     'depth'   => 0, 
     'walker'   => '' 
     ) 
    ); 
} 

Выход:

<ul class="ul-menu"> 
    <li><a href="#">menu item 1</a></li> 
    <li><a href="#">menu item 2</a></li> 
    <li><a href="#">menu item 3</a></li> 
</ul> 

Желаемый результат:

<li><a href="#">menu item 2</a></li> 

Пожалуйста, обратите внимание: это должно быть на стороне сервера решение, я не ищу целевые пункты меню через CSS или JavaScript.

Заранее благодарен!

+2

от того, что я помню, вам необходимо расширить класс 'Walker_Nav_Menu' с вашим собственным обычаем ходок, то вы можете манипулировать каждый элемент (и я предполагаю, что экстракт одного) см [здесь] (HTTP: // WordPress .stackexchange.com/questions/116708/customizing-walker-nav-menu) – andrew

ответ

1

Использовать вместо wp_get_nav_menu_items($menu, $args).

В вашем случае я считаю,

$args = array(
    'order'     => 'ASC', 
    'orderby'    => 'menu_order', 
    'post_type'    => 'nav_menu_item', 
    'post_status'   => 'publish', 
    'output'     => ARRAY_A, 
    'output_key'    => 'menu_order', 
    'nopaging'    => true, 
    'update_post_term_cache' => false); 

wp_get_nav_menu_items('header-menu', $args); 

должен возвращать массив меню списка объектов. Вы можете взять второй и поместить содержимое в элемент списка или все, что вы хотите с ним сделать.

https://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items

+0

спасибо, что это помогло, но не совсем то, что я хотел ... в идеале я хочу создать функцию, которая выводит запрошенный элемент, например 'get_menu_item (2); 'который будет выводить'

  • menu item 2
  • 'Я просто не могу понять логику, чтобы сделать ее – Aziz

    +1

    , а что-то вроде ' $ items = wp_get_nav_menu_items ('header-menu', $ args); ' 'echo ('

  • ' . $items[1]["post_title"] . '
  • );' – rubes114

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