wp_get_nav_menu_items() — позволяет получить элементы меню в виде объектов

Получает массив объектов элементов меню. Если меню не содержит элементов, возвращает пустой массив, либо false, если указанного меню не существует.

Функция позволяет создать нестандартные HTML-шаблоны вывода меню, например вывод в виде только ссылок (подробнее в примере ниже) или в виде нумерованного списка.

wp_get_nav_menu_items( $menu, $args = array() )
$menu
(строка) Можно указать ID, ярлык или название меню, элементы которого нужно будет получить. Не указывайте здесь области темы.
$args
(массив) Дополнительные параметры вывода. По умолчанию принимает следующие значения:
$args = array(
    'nopaging'               => true,
    'post_type'              => 'nav_menu_item',
    'post_status'            => 'publish',
    'order'                  => 'ASC',
    'orderby'                => 'menu_order',
    'output'                 => ARRAY_A,
    'output_key'             => 'menu_order',
    'update_post_term_cache' => false
);

Функция возвращает массив объектов элементов меню. Например вот пример объекта для ссылки на главную страницу:

WP_Post Object
(
    [ID] => 5861
    [post_author] => 1
    [post_date] => 2014-07-20 07:54:11
    [post_date_gmt] => 2014-07-20 03:54:11
    [post_content] => 
    [post_title] => Главная
    [post_excerpt] => 
    [post_status] => publish
    [comment_status] => open
    [ping_status] => open
    [post_password] => 
    [post_name] => %d0%b3%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2014-07-23 07:39:24
    [post_modified_gmt] => 2014-07-23 03:39:24
    [post_content_filtered] => 
    [post_parent] => 0
    [guid] => https://misha.blog/?p=5861
    [menu_order] => 1
    [post_type] => nav_menu_item
    [post_mime_type] => 
    [comment_count] => 0
    [filter] => raw
    [post_category] => 0
    [post_icon] => 
    [db_id] => 5861
    [menu_item_parent] => 0
    [object_id] => 5861
    [object] => custom
    [type] => custom
    [type_label] => Произвольно
    [title] => Главная
    [url] => https://misha.blog
    [target] => 
    [attr_title] => 
    [description] => 
    [classes] => Array
        (
            [0] => 
        )
 
    [xfn] => 
)

Пример. Выводим меню в виде ссылок.

Обычно меню в WordPress всегда выводятся в виде маркированного <ul>-списка. Это удобно, но не всегда бывает нужно. Давайте посмотрим, как можно вывести меню просто в виде ссылок.

if( $menu_items = wp_get_nav_menu_items('Меню для шапки') ) { // "Меню для шапки" - это название моего меню. Вы можете также использовать ID или ярлык
    $menu_list = '';
    foreach ( (array) $menu_items as $key => $menu_item ) {
        $title = $menu_item->title; // заголовок элемента меню (анкор ссылки)
        $url = $menu_item->url; // URL ссылки
        $menu_list .= '<a href="' . $url . '">' . $title . '</a>';
    }
    echo $menu_list;
}

Вот и всё, осталось только добавить к новому меню немного CSS-стилей.

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: