【问题标题】:Hide menu items from authenticated users Wordpress对经过身份验证的用户隐藏菜单项 Wordpress
【发布时间】:2015-04-22 06:38:10
【问题描述】:

我有Login 菜单项,我想对经过身份验证的用户隐藏它,我试图找到解决方案并找到这个:

Wordpress Stackexchange

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

【问题讨论】:

    标签: php wordpress authentication login


    【解决方案1】:

    这可以单独使用 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;
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-06
        • 2020-11-15
        • 2016-01-17
        • 1970-01-01
        相关资源
        最近更新 更多