【发布时间】:2015-04-22 06:38:10
【问题描述】:
我有Login 菜单项,我想对经过身份验证的用户隐藏它,我试图找到解决方案并找到这个:
但在我看来,创建两个单独的菜单并不是一个好主意。也许以另一种方式存在?谢谢!
【问题讨论】:
标签: php wordpress authentication login
我有Login 菜单项,我想对经过身份验证的用户隐藏它,我试图找到解决方案并找到这个:
但在我看来,创建两个单独的菜单并不是一个好主意。也许以另一种方式存在?谢谢!
【问题讨论】:
标签: php wordpress authentication login
这可以单独使用 CSS 完成。当用户登录时,WordPress 会将类“logged-in”添加到页面的正文标记中。
在菜单构建器中,您可以在设置标签和标题的同一位置为单个菜单项指定一个类。例如,您可以将类设置为“注销隐藏”。截图:
如果“类”选项不可见(默认情况下不可见),请在“屏幕选项”区域将其打开。请参阅此屏幕截图中的最后一行选项:
现在,在您的 CSS 中,您可以使用以下 CSS 规则在用户登录时隐藏此项目:
body.logged-in li.logout-hide {
display:none;
}
如果您想在登录时隐藏注销项,并在注销时隐藏登录项,则可以使用相同的方法。
关于 css 特异性的说明:您可能会发现即使设置了上述规则,该项目也没有隐藏。这可能是因为另一个规则正在覆盖您的新规则并将“显示”属性设置为可见的内容。例如,如果您的菜单应用了一个 ID(例如,可能是“menu-header-menu”),您可能必须将其添加到您的规则中。即:
body.logged-in ul#menu-header-menu li.logout-hide {
display:none;
}
如果您有任何问题,请告诉我们。
【讨论】:
如果您不想创建两个单独的菜单,则必须创建一个custom menu walker。但老实说,creating two seperate menus 是正确的方法,而且可能也是最简单的方法。
或者,您可以为要隐藏的菜单项添加一个类,并使用 JavaScript 和 CSS 为未登录的用户隐藏它们,当然,这不是一个很好的解决方案。
【讨论】:
我正在尝试 Mere Development 的方式,理论上它应该可以工作,但是我使用的是 Chrome。确保在 DevTools 下禁用 Chrome 的缓存
【讨论】: