如何才能让用户智能地选择最低权限

时间:2015-11-25 作者:Abirvab

我们可以使用current_user_can(), 但它不支持一系列用户角色,只支持一个角色。因此,我们必须多次检查每个角色:

if( current_user_can(\'administrator\') || current_user_can(\'editor\') ) {
  //do this
}
我正在制作WordPress插件,我需要管理员选择管理插件的最低权限。如果角色是分层的,则它们是这样的(对于单个站点):

如果管理员选择了作者,那么我必须进行3次或以上所示的检查(如果x | | y | | z)。

有没有什么聪明的方法可以让我选择,这样我就可以让他们选择最低权限,但我也可以巧妙地处理它。

非常感谢。

2 个回复
最合适的回答,由SO网友:Maruti Mohanty 整理而成

您正在使用正确的WP函数,但遗憾的是,没有传递正确的参数来实现此功能。

current_user_can() 接受功能和角色作为参数。

在上面,您使用的是角色,而不是功能。

您可以使用功能使其正常工作。

例如,如果希望最低权限角色是作者,则代码如下所示

if ( current_user_can( \'edit_published_posts\' ) ) {
  //do this
}
这将允许包括作者在内的所有角色都拥有该权限,并将阻止角色为contributor和subscriber的用户访问。

您可以阅读roles and capabilities from the codex here.

SO网友:Mark Kaplun

创建管理插件的功能。默认情况下,管理员可以使用任何角色/功能管理插件将其添加到角色或用户。只需在文档中明确说明即可。

实际上,您可以将其添加到UI中(让管理员选择角色并向其添加功能),但您应该考虑它是否会成为大多数人不会使用的UI膨胀。

相关推荐