Кастомное меню WordPress через wp_get_nav_menu_items()
Главная страница › Блог › Для разработчиков › Кастомное меню WordPress через wp_get_nav_menu_items()
Иногда, меню на сайте бывает настолько сложным или нестандартным, что использование привычной функции wp_nav_menu() невозможно.
Поэтому, предлагаем Вам рассмотреть возможность вывода меню WordPress через функцию wp_get_nav_menu_items().
Вставляйте этот код в нужное место шаблона и кастомизируйте под свою структуру:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php $menu_name = 'top_menu'; // название меню $locations = get_nav_menu_locations(); $menu = wp_get_nav_menu_object( $locations[ $menu_name ] ); $menuitems = wp_get_nav_menu_items( $menu->term_id, array( 'order' => 'DESC' ) ); ?> <nav class="wrap_custom_menu"> <?php $count = 0; $submenu = false; foreach( $menuitems as $item ): $link = $item->url; $title = $item->title; if(!$item->menu_item_parent): $parent_id = $item->ID; ?> <a href="<?php echo $link; ?>"><?php echo $title; ?></a> <!-- верхний пункт меню --> <?php endif; ?> <?php if ( $parent_id == $item->menu_item_parent ): ?> <?php if ( !$submenu ): $submenu = true; ?> <ul class="dropdown-menu"> <!-- выпадающее меню --> <?php endif; ?> <li> <a href="<?php echo $link; ?>"><?php echo $title; ?></a> </li> <?php if ( $menuitems[ $count + 1 ]->menu_item_parent != $parent_id && $submenu ): ?> </ul> <?php $submenu = false; endif; ?> <?php endif; ?> <?php if ( $menuitems[ $count + 1 ]->menu_item_parent != $parent_id ): ?> <?php $submenu = false; endif; ?> <?php $count++; endforeach; ?> </nav> |
Поделиться: