Wp_get_nav_menu_items() - функция WordPress
Опубликовано: 01.09.2018
Получает массив объектов элементов меню. Если меню не содержит элементов, возвращает пустой массив, либо false, если указанного меню не существует.
Part 17 - WordPress Theme Development - Create a custom Nav Menu - Part 1
Функция позволяет создать нестандартные HTML-шаблоны вывода меню, например вывод в виде только ссылок (подробнее в примере ниже) или в виде нумерованного списка.
wp_get_nav_menu_items ( $menu , $args = array ( ) ) |
$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 ) ; |
Функция возвращает массив объектов элементов меню. Например вот пример объекта для ссылки на главную страницу:
Wordpress Theme Development tutorial from scratch (Part 22) Navigation Menu locations and menu items
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-стилей.