我们可以使用current_user_can()
, 但它不支持一系列用户角色,只支持一个角色。因此,我们必须多次检查每个角色:
if( current_user_can(\'administrator\') || current_user_can(\'editor\') ) {
//do this
}
我正在制作WordPress插件,我需要管理员选择管理插件的最低权限。如果角色是分层的,则它们是这样的(对于单个站点):
如果管理员选择了作者,那么我必须进行3次或以上所示的检查(如果x | | y | | z)。
有没有什么聪明的方法可以让我选择,这样我就可以让他们选择最低权限,但我也可以巧妙地处理它。
非常感谢。
最合适的回答,由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.