关于子菜单真的很难解决这个问题。我使用Bootstrap为Wordpress制作了一个自定义主题。我成功设法使用wp_bootstrap_navwalker下拉子菜单链接使我的主导航菜单动态化。
我还制作了一个nav-pills菜单,在主站点导航菜单和页眉下方显示为动态子菜单。它显示该特定父级的所有子页面。
我的问题是,当您使用此菜单转到某个页面时,菜单上的活动项目不会显示为活动状态。
这是我的HTML / PHP:
<div class="nav-grey-band">
<?php
$args = array(
'menu' => 'primary',
'theme_location' => 'primary',
'submenu' => 'The Team',
'container_class' => 'centered-pills',
'menu_class' => 'nav nav-pills'
);
wp_nav_menu( $args );
?>
</div>
以下是我的functions.php中的内容:
// Register Custom Navigation Walker require_once('wp_bootstrap_navwalker.php'); add_filter( 'wp_nav_menu_objects', 'submenu_limit', 10, 2 ); function submenu_limit( $items, $args ) { if ( empty( $args->submenu ) ) { return $items; } $ids = wp_filter_object_list( $items, array( 'title' => $args->submenu ), 'and', 'ID' ); $parent_id = array_pop( $ids ); $children = submenu_get_children_ids( $parent_id, $items ); foreach ( $items as $key => $item ) { if ( ! in_array( $item->ID, $children ) ) { unset( $items[$key] ); } } return $items; } 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; }