【问题标题】:How to distinguish between user roles in wordpress?如何区分wordpress中的用户角色?
【发布时间】:2009-02-03 09:44:40
【问题描述】:

我试图限制订阅者可以看到的内容,但我所做的一切似乎都不起作用。我花了几个小时在网上和 wordpress 代码中搜索,但都无济于事。有谁知道我将如何解决这个问题?

理想情况下,代码结构如下所示:

if(get_role() = 'subscriber'){
    redirect
}

谢谢

顺便说一句,我尝试过 get_role($role) 但这对我不起作用。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    我为此使用了 current_user_can。这里有一个角色和能力列表:

    http://codex.wordpress.org/Roles_and_Capabilities#Capabilities:_5

    因此,由于“订阅者”级别以上的每个人都可以编辑帖子,因此满足您概述的要求的一种方法是:

    if (!current_user_can('edit_posts')){
    
    //redirect, error, etc as you like
    
    }
    

    【讨论】:

      【解决方案2】:

      更新:有一个函数current_user_can(capability) 可以用来找出用户可以做什么和不能做什么。我想您将需要添加另一个角色或功能。

      尝试以下方法:

      if ('subscriber' == get_role()) {
          # do whatever
      }
      

      = 分配
      ==比较

      【讨论】:

      • 谢谢你。我总是忘记这一点。唉,这不是解决办法。
      【解决方案3】:

      Wordpress 不能很好地限制内容访问。它只是没有内置到系统中。大多数权限工作涉及控制谁可以创建和编辑,但最重要的设计原则是让任何人查看。这对于博客应用程序来说是有意义的,但如果您有需要条件访问的用户类型,它可能会受到限制。

      您可以毫不费力地添加订阅者角色,但是您必须为大量渲染代码添加挂钩,以重定向或隐藏循环中的帖子。最少的开发工作是检查用户在循环中的角色并隐藏他们不应该看到的内容。这样做的缺点是您最终可能会在空白页面附近呈现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-12
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 2016-02-05
        • 2015-11-26
        • 2016-01-10
        • 2018-05-10
        相关资源
        最近更新 更多