【发布时间】:2020-02-25 22:48:55
【问题描述】:
我在 WordPress 中有以下菜单结构:
- 父 1
- 子菜单 1
- 子菜单 2
- 子菜单 3
- 父 2
- 子菜单 4
- 子菜单 5
- 父 3
- 子菜单 6
我正在使用 WordPress wp_nav_menu_objects 过滤器来检索所有子菜单项。我必须使用下面的代码:
add_filter( 'wp_nav_menu_objects', 'my_wp_nav_menu_objects_sub_menu', 10, 2 );
// filter_hook function to react on sub_menu flag
function my_wp_nav_menu_objects_sub_menu( $sorted_menu_items, $args ) {
if ( isset( $args->sub_menu ) ) {
foreach ( $sorted_menu_items as $key => $item ) {
if ( $item->menu_item_parent == '0' ) { // only get sub-menu items
unset( $sorted_menu_items[$key] );
}
}
return $sorted_menu_items;
} else {
return $sorted_menu_items;
}
}
也显示导航:
wp_nav_menu( array(
'theme_location' => 'main-menu',
'menu_id' => 'sub-menus',
'menu_class'=>'menu',
'container'=>'ul',
'sub_menu' => true,
) );
生成 HTML:
<ul>
<li>Submenu 1</li>
<li>Submenu 2</li>
<li>Submenu 3</li>
<li>Submenu 4</li>
<li>Submenu 5</li>
<li>Submenu 6</li>
</ul>
理想情况下,我希望每个子菜单“组”都位于其自己的 <ul> 容器中,但我似乎无法弄清楚如何做到这一点。下面是首选结果的一个示例。
<ul>
<ul>
<li>Submenu 1</li>
<li>Submenu 2</li>
<li>Submenu 3</li>
</ul>
<ul>
<li>Submenu 4</li>
<li>Submenu 5</li>
</ul>
<ul>
<li>Submenu 6</li>
</ul>
</ul>
任何有关如何解决此问题的建议将不胜感激!
【问题讨论】: