CURRENT_USER_CAN(‘管理员’)不在自定义登录中工作

时间:2016-10-12 作者:Mr Pablo

我在网站上使用自定义登录表单,在自动将管理员重定向到仪表板时遇到问题。

下面是登录功能

function auth( $username, $password, $redirect ) {
    global $user;

    $credentials = array();
    $credentials [\'user_login\'] = $username;
    $credentials [\'user_password\'] =  $password;
    $credentials [\'remember\'] = true;
    $user = wp_signon( $credentials , false );

    if ( is_wp_error($user) )
    {
        echo $user->get_error_message();
    }

    $admin_url = home_url(\'wp-admin\');

    if ( !is_wp_error($user) )
    {
        if (current_user_can(\'administrator\'))
        {
            wp_redirect($admin_url);
        }
        else
        {
            wp_redirect($redirect);
        }
    }
}
当我以管理员身份登录时,current_user_can(\'administrator\') 正在返回false.

如果我走进current_user_can() 作用$current_user = wp_get_current_user(); 似乎获取了一些数据,但似乎没有获取所有数据,因此false 回答

我还尝试使用is_admin() 但这也行不通。

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

在此步骤中可能未设置当前用户,请尝试以下操作:

    if (user_can($user, \'administrator\'))
    {
        wp_redirect($admin_url);
    }