选择父类别时,在侧栏中显示子类别

时间:2011-04-29 00:32:07

标签: php wordpress

我在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类的可能解决方案是什么?

1 个答案:

答案 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