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

时间:2015-04-22 06:38:11

标签: php wordpress authentication login

我有Login菜单项,我希望将其隐藏于未经过身份验证的用户,我会尝试找到解决方案并将其设为:

Wordpress Stackexchange

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

3 个答案:

答案 0 :(得分:1)

这可以单独用CSS完成。当用户登录时,WordPress会添加类' logged-in'到页面的正文标记。

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

enter image description here

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

enter image description here

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

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

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

关于css特异性的说明:您可能会发现即使在您设置上述规则后,该项也不会被隐藏。这很可能是因为其他规则会覆盖您的新规则并设置'显示'财产到可见的东西。例如,如果您的菜单中有一个ID(例如,菜单标题菜单可能),您可能需要将其添加到您的规则中。即:

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我正在尝试Mere Development的方式,理论上它应该可行,但我使用的是Chrome。确保在DevTools下禁用Chrome的缓存