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

发布于 2024-11-04 04:14:32 字数 474 浏览 1 评论 0原文

我试图在 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 隐藏/显示功能,这可以轻松实现。

聚苯硫醚。扩展 Walker_Nav_Menu 类是否有可能的解决方案?

What I'm trying to achieve in WP 3.1.x using the wp_nav_menu function, is to have a menu such as:

-- Category 1
-- Category 2
-- Category 3
-- Category 4
-- Category 5
-- Category 6

But when you're on 'Category 2' it displays as:

-- Category 1
-- Category 2
  -- Sub Category 1
  -- Sub Category 2
  -- Sub Category 3
-- Category 3
-- Category 4
-- Category 5
-- Category 6

PS. I'm not looking for CSS hide/show functionality, that can be achieved easily.

PPS. Is a possible solution for this extending the Walker_Nav_Menu class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时间你老了 2024-11-11 04:14:32

如果您对 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

If you subclass the Walker_Nav_Menu class you can override the display_element function and conditionally remove an item's children before they are looped through.

if (!$element->current && !$element->current_item_ancestor && isset( $children_elements[$id])) {
   unset( $children_elements[ $id ] );
}

This would remove the children of any item that is not current, so you would need to check the item's type if you just want to do this for categories. The complete walker would look something like this: https://gist.github.com/954627

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文