我试图限制订阅者可以看到的内容,但我所做的一切似乎都不起作用。我花了几个小时在网上和 wordpress 代码中搜索,但都无济于事。有谁知道我怎么能做到这一点?
理想情况下,代码结构如下所示:
if(get_role() = 'subscriber'){
redirect
}
谢谢
顺便说一句,我尝试过 get_role($role) 但这对我不起作用。
我为此使用了 current_user_can。这里有一个角色和能力列表:
http://codex.wordpress.org/Roles_and_Capabilities#Capabilities:_5
因此,由于“订阅者”级别以上的每个人都可以编辑帖子,因此满足您概述的要求的一种方法是:
if (!current_user_can('edit_posts')){
//redirect, error, etc as you like
}
更新:有一个功能current_user_can(capability)
可以用来找出用户可以做什么和不能做什么。我想您将需要添加另一个角色或功能。
尝试以下操作:
if ('subscriber' == get_role()) {
# do whatever
}
= 赋值
== 比较
Wordpress 在内容访问限制方面做得不是很好。它只是没有内置到系统中。大多数权限工作涉及控制谁可以创建和编辑,但最重要的设计原则是让任何人查看。这对于博客应用程序来说是有意义的,但如果您有需要条件访问的用户类型,它可能会受到限制。
您可以毫不费力地添加订阅者角色,但是您必须为大量渲染代码添加挂钩,以重定向或隐藏循环中的帖子。最少的开发工作是检查用户在循环中的角色并隐藏他们不应该看到的内容。这样做的缺点是您最终可能会在空白页附近进行渲染。