Wordpress以前有用户级别的概念,您可以检查当前用户的级别。但它已被更改为角色和能力系统。在这个系统中,每个任务都被定义为一种能力,某些用户角色具有这种能力。
有了它,您可以创建新的功能。比方说,您想创建一个新的用户角色(除了内置的超级管理员、管理员、编辑器、作者、参与者和订阅者角色),这些角色具有您创建的新功能。它提供了极大的灵活性。如果需要,还可以调整内置功能。
如果您只需要检查某个用户是否具有特定角色,比如管理员,那么您应该检查管理员具有哪些功能,而下一个角色没有这些功能。默认情况下,管理员具有编辑器所不具备的以下功能
激活插件创建用户删除插件删除用户导出插件安装插件
安装主题列出用户管理选项提升用户删除用户切换主题更新核心更新插件更新主题编辑仪表板
if( current_user_can(\'activate_plugins) ){
//do what only the admin user should do
}
或
if( current_user_can(\'create_users\') ){
//do what only the admin user should do
}
或
if( current_user_can(\'manage_options\') ){
//do what only the admin user should do
}
等等
同样的规则适用于其他用户角色。
使用什么功能完全是您的选择,但我更喜欢使用与正在完成的任务相关的功能。例如,如果我正在处理选项页(管理菜单面板),我更喜欢检查current_user_can(\'manage_options\')
要回答问题的第二部分(如果我理解正确的话),如果要创建管理菜单页,应该使用add_menu_page
此函数的第三个参数是$capability
. 您在此处提供的功能决定了用户可以访问该页面的角色。如果您提供\'manage_options\'
, 只有管理员才能访问该页面。如果您提供\'delete_posts\'
, 作者、编辑和管理员可以访问该页面。