在尝试构建2个链接菜单时,可以说层次结构是这样的(在菜单选项中)
- A
-- B
-- C
-- D
-- D1
-- D2
- A1
第一个菜单我希望它被修复,所以我用它取出它
'depth' => 1,
。
第二个菜单必须根据第一个菜单进行更改(如果我按A
,它将仅显示B
和C
和D
当我按B
时,它仍然必须以B
,C
,D
开启(如果按D1
则相同)。我认为我们明白了它应该如何运作。
当我尝试构建此功能时,我只会在您从主菜单中选择(例如A
或A1
)时才能获取菜单。
但是当你在深度菜单中更深入地选择它显示喜欢的孩子们。 (如果我选择D
子菜单变为D1
和D2
),我不想要它,
我试着检查菜单的深度,或者得到任何可以帮助我做这种事情的东西,但我找不到任何东西。
这里有一些代码: 功能:
function submenu_get_children_ids( $id, $items ) {
$ids = wp_filter_object_list( $items, array( 'menu_item_parent' => $id ), 'and', 'ID' );
foreach ( $ids as $id ) {
$ids = array_merge( $ids, submenu_get_children_ids( $id, $items ) );
}
return $ids;
}
获取菜单:
$menu = wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => 'right_menu', // class of container (should you choose to use it)
'menu' => __( 'top_main_nav', 'bonestheme' ), // nav name
'menu_class' => 'main_bar_menu '.$lang.'', // adding custom nav class
'theme_location' => 'main-nav', // where it's located in the theme
'before' => '', // before the menu
'after' => '', // after the menu
'link_before' => '', // before each link
'link_after' => '', // after each link
'depth' => 1, // limit the depth of the nav
'fallback_cb' => '' // fallback function (if there is one)
));
$current_page = 0;
// check if the current page has a menu.
foreach(wp_get_nav_menu_items('top_main_nav') as $pagec) {
if(get_the_title() == $pagec->title) {
$current_page = $pagec->title;
}
}
if($current_page === 0) {
$current_page = "Home";
}
$args = array(
'container' => false,
'container_class' => 'main_bar_menu',
'menu' => 'top_main_nav',
'menu_class' => 'main_bar_menu',
'submenu' => $current_page,
);
wp_nav_menu( $args );
我正试图找到一个解决方案大约2天:\如果有人可以指导我,我会非常感激!
非常感谢!