对经过身份验证的用户隐藏菜单项 Wordpress

Hide menu items from authenticated users Wordpress

我有 Login 菜单项,我想对未经授权的用户隐藏它,我尝试找到解决方案并找到这个:

Wordpress Stackexchange

但我认为创建两个单独的菜单并不是一个好主意。也许存在另一种方式?谢谢!

如果您不想创建两个单独的菜单,则必须创建一个 custom menu walker. But honestly, creating two seperate menus 是正确的方法,而且可能也是最简单的方法。

或者,您可以将 class 添加到要隐藏的菜单项,并使用 JavaScript 和 CSS 为未登录的用户隐藏它们,当然,这不是一个很好的解决方案。

这可以单独使用 CSS 来完成。当用户登录时,WordPress 将 class 'logged-in' 添加到页面的 body 标签。

在菜单构建器中,您可以在设置标签和标题的同一位置为单个菜单项指定 class。例如,您可以将 class 设置为 'logout-hide'。屏幕截图:

如果 'class' 选项不可见(默认情况下不是),请在 'Screen Options' 区域将其打开。请参阅此屏幕截图中最后一行的选项:

现在,在您的 CSS 中,您可以使用以下 CSS 规则在用户登录时隐藏此项目:

body.logged-in li.logout-hide {
    display:none;
}

如果您想在登录时隐藏注销项,并在注销时隐藏登录项,可以使用相同的方法。

关于 css 特殊性的说明: 您可能会发现,即使在您设置上面的规则之后,该项目也不会被隐藏。这可能是因为另一个规则正在覆盖您的新规则并将 'display' 属性 设置为可见的内容。例如,如果您的菜单应用了一个 ID(例如 'menu-header-menu' 可能),您可能必须将其添加到您的规则中。即:

body.logged-in ul#menu-header-menu li.logout-hide {
    display:none;
}

如果您有任何问题,请告诉我们。

我正在尝试 Mere Development 的方式,理论上它应该可以工作,但我使用的是 Chrome。确保在 DevTools

下禁用 Chrome 的缓存