wp_nav_menu walker类子菜单仅在父页面上显示

1 navigation wordpress

我搜索过,无法找到一个自定义的"Walker"类,它将隐藏wp_nav_menu中的子菜单,直到您在父页面上.我已经找到很多方法来隐藏它们或只是显示子菜单但不是一种只在你在那个部分时显示子菜单的方法.以下是我需要显示的示例:

目前的Wp_nav_menu结构:

  • 家长1
  • 家长2
    • 孩子1
    • 孩子2
  • 家长3
    • 孩子A.
    • 孩子B.

-显示-

在父母1 /主页上:

  • 家长1
  • 家长2
  • 家长3

在父2和父2子页面上:

  • 家长1
  • 家长2
    • 孩子1
    • 孩子2
  • 家长3

Tom*_*ell 5

您不需要自定义walker来执行此操作,可以使用CSS类完成,并且display:none;

例如,你可以从:

.menu .sub-menu { display: none; }
.menu .current-menu-item .sub-menu { display:block; }
.menu .current-menu-ancestor .sub-menu { display:block; }
Run Code Online (Sandbox Code Playgroud)

通过一些额外的规则,基于应用于body标签的类,您可以有条件地显示和隐藏其他菜单项,使用通过后端添加到菜单项的类.