删除特定用户的不同管理菜单

时间:2018-03-21 作者:arjun sreekumar

最初,我打算获取用户ID,以便根据用户状态(我添加为元)在插件中显示/隐藏某些菜单组。

问题是我不能使用wp_get_current_userget_current_user_id 返回0。

有没有其他方法获取此ID?或者是否有其他方法根据登录的用户状态隐藏/显示菜单?

结构几乎是这样的。

add_action("admin_menu","show_menu");
function show_menu(){
    //create menu1;
    //create menu2;

    if () //check user status
        //create menu3
}

1 个回复
SO网友:Trisha

您提到用户“状态”。。。。您是否希望显示/隐藏用户类别(按角色/功能)而不是单个用户(按ID)的菜单?

我做了一些类似的事情,以便级别以下的用户无法访问某些后端菜单项,使用current\\u user\\u can和!当前用户可以。

例如,这将检查用户是否是编辑或更高级别的人,如果不是,则不允许用户查看自己以外的任何帖子(默认WP行为是显示所有帖子,但只允许他们编辑自己的帖子,我们甚至不希望他们看到其他人的帖子)。

add_action( \'load-edit.php\', \'posts_for_current_contributor\' );
function posts_for_current_contributor() {
    global $user_ID;
    if ( !current_user_can( \'delete_others_posts\' ) ) {
       if ( ! isset( $_GET[\'author\'] ) ) {
          wp_redirect( add_query_arg( \'author\', $user_ID ) );
          exit;
       }
   }

}
您可以了解有关角色的更多信息;以下是一些其他示例的功能:https://codex.wordpress.org/Roles_and_Capabilities

结束