根据角色或功能限制对Wordpress页面的访问

时间:2012-09-21 17:06:42

标签: php wordpress role restrict capability

如何根据用户的role or capability限制对特定Wordpress页面的访问?我知道有各种插件可以实现这一点,我在谷歌搜索时发现了一些非常老化的解决方案。

我认为现在是时候有一个有效的最新解决方案了。

1 个答案:

答案 0 :(得分:4)

我在a recent question of yours的回答中尝试解释,并在the bottom of your linked docs开发资源部分中引用,current_user_can是(据我所知,考虑到User Levels的替换(2.0)和弃用(3.0),最灵活,最全面的方法来测试用户功能。

无论您是允许还是限制查看网页或进行特定更改,都有必要配合Wordpress已定义的与Roles相关联的功能。当您使用任何类型的角色范围功能编辑超级管理插件或函数时,尤其如此。它也不受单个或多站点安装中的应用程序的阻碍,并涵盖了所有可能的用户。

当您测试当前用户是否可以执行此操作时,这些功能的更改可能性远远低于与某些角色或用户级别关联的功能。

您需要了解的关于current_user_can的所有内容都得到了很好的解释in the docs,它通常遵循以下逻辑:

if ( current_user_can('do_something_pertaining_to_the_below') ) {
    echo 'You are a user who can do the above thing, so do the below thing';
    /* the thing */
}

相反:

if ( !current_user_can('some_fancy_capability') ) {
    echo 'No can do';
    return;
}
else { /* the similarly fancy, restricted thing */ }

所有这一切,如果有人听说过更加进步和聪明的做法,我全都听见了!