I am trying to create my own menu in WordPress with a submenu that holds items ass well e.g.:
<li> <a href="#">Nav Link</a> <ul> <li><a href="#">Sub Nav Link</a></li> <li><a href="#">Sub Nav Link</a> <ul> <li><a href="#">2nd Sub Sub Nav Link</a></li> <li><a href="#">2nd Sub Sub Nav Link</a></li> <li><a href="#">2nd Sub Sub Nav Link</a></li> </ul> </li> <li><a href="#">Sub Nav Link</a></li> <li><a href="#">Sub Nav Link</a></li> </ul> </li> I have this function:
function wp_get_menu_array($current_menu) { $array_menu = wp_get_nav_menu_items($current_menu); $menu = array(); foreach ($array_menu as $m) { if (empty($m->menu_item_parent)) { $menu[$m->ID] = array(); $menu[$m->ID]['ID'] = $m->ID; $menu[$m->ID]['title'] = $m->title; $menu[$m->ID]['url'] = $m->url; $menu[$m->ID]['children'] = array(); } } $submenu = array(); foreach ($array_menu as $m) { if ($m->menu_item_parent) { $submenu[$m->ID] = array(); $submenu[$m->ID]['ID'] = $m->ID; $submenu[$m->ID]['title'] = $m->title; $submenu[$m->ID]['url'] = $m->url; $menu[$m->menu_item_parent]['children'][$m->ID] = $submenu[$m->ID]; } } return $menu; } And to render the nav:
<?php foreach ($menu_items as $item) : ?> <?php $current = ( $item->object_id == get_queried_object_id() ) ? 'current' : '' ?> <li class="nav-item"> <a class="nav-link <?= $current ?>" href="<?= $item['url'] ?>" title="<?= $item['title'] ?>"><?= $item['title'] ?></a> <?php if( !empty($item['children']) ):?> <ul class="sub-menu"> <?php foreach($item['children'] as $child): ?> <li class="b-main-header__sub-menu__nav-item"> <a href="<?= $child['url'] ?>" title="<?= $child['title'] ?>"><?= $child['title'] ?></a> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> I just cannot figure how I would implement a multi level submenu. At the moment when I create a submenu which holds items as well it will create those items as individual menu items.
Hope my clarification is well enough and somebody can help me out here.
https://stackoverflow.com/questions/65947833/wp-get-nav-menu-items-multi-level-submenu January 29, 2021 at 10:06AM
没有评论:
发表评论