Получает массив объектов элементов меню. Если меню не содержит элементов, возвращает пустой массив, либо 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