隐藏特定角色的插件仪表板菜单项

时间:2014-04-29 作者:fightstarr20

我正在编写一个插件,我试图只向特定角色显示管理仪表板菜单项。到目前为止,我有这个控制片段。。。

// Check User Role
 global $current_user;
  if( !empty($current_user->roles) ){
    foreach ($current_user->roles as $key => $value) {
      if( $value == \'administrator\' ){
           new myplugin_Wp_List_Table();
      }
    }
  }
由于某种原因,这不起作用,当我以管理员身份登录时,它不会显示菜单。

有人有什么想法吗?

1 个回复
最合适的回答,由SO网友:bueltge 整理而成

我认为更好的策略是,在激活时添加一个新功能,并将此功能添加到管理员角色。这使得具有不同角色的安装可以将此功能添加到其他角色,或者安装的要求可以将视图添加到其他角色。

向角色添加Cap

add_action( \'admin_init\', \'fb_add_capabilities\' );
function fb_add_capabilities() {

    `$GLOBALS[\'wp_roles\']->add_cap( \'administrator\', \'_your_custom_cap\' );`
}
检查源中的Cap,您是否可以检查此功能:

if ( ! current_user_can( \'_debug_objects\' ) )
    return;
拆下停用(挂钩)上的盖子register_deactivation_hook) 和卸载(挂钩register_uninstall_hook) 有必要移除插件的盖子。remove_cap()

示例

在野外的一个示例plugin, file.

结束

相关推荐