我在WP 3.1.x中尝试使用wp_nav_menu
函数实现的目的是获得如下菜单:
-- Category 1
-- Category 2
-- Category 3
-- Category 4
-- Category 5
-- Category 6
但当你进入'第2类'时,它显示为:
-- Category 1
-- Category 2
-- Sub Category 1
-- Sub Category 2
-- Sub Category 3
-- Category 3
-- Category 4
-- Category 5
-- Category 6
PS。我不是在寻找可以轻松实现的CSS隐藏/显示功能。
PPS。扩展Walker_Nav_Menu
类的可能解决方案是什么?
答案 0 :(得分:3)
如果您继承Walker_Nav_Menu
类,则可以覆盖display_element
函数,并在循环播放之前有条件地删除项目的子项。
if (!$element->current && !$element->current_item_ancestor && isset( $children_elements[$id])) {
unset( $children_elements[ $id ] );
}
这将删除任何不是最新项目的子项,因此如果您只想对类别执行此操作,则需要检查项目的类型。完整的助行器看起来像这样:https://gist.github.com/954627