自定义登录后不显示仪表板


dashboard not appears after custom login

我尝试从头开始编写自定义登录和注册Wordpress的代码。然而,成功登录后,我无法看到仪表板作为管理员。

这是我的代码检查用户名和密码和重定向到主页后登录:

$username= $_POST["username"];
$password= $_POST["password"];
$user = get_user_by( 'login', $username );
if ( $user && wp_check_password( $password, $user->data->user_pass, $user->ID) ) {
    $user_data = get_userdata ($user->ID);
    if ($user_data !== false) {
        wp_cache_delete ($user_data->ID, 'users');
        wp_cache_delete ($user_data->user_login, 'userlogins');
        do_action ('user_register', $user_id);
        wp_clear_auth_cookie();
        wp_set_auth_cookie ($user_data->ID, true);
        do_action ('wp_login', $user_data->user_login, $user_data);
        wp_redirect (home_url());
        exit();
    }
}

这是迄今为止我能安全地做的事情的摘录。我不能在这方面做更多的实验。我需要一些建议,我需要为任何基于角色的功能编码吗?

嘿,你为什么要写自定义代码来登录,涉及cookie ?这里有一个登录函数,检查wp_signon()

代码如下:

    $creds = array();
    $creds['user_login'] = isset($_POST["username"]) ? $_POST["rf_username"] : false;
    $creds['user_password'] = isset($_POST["password"]) ? $_POST["rf_password"] : false;
    $creds['remember'] = isset($_POST['cook']) ? $_POST['cook'] : false;
    if($creds['user_login'] != false || $creds['user_password'] != false){
        $autologin_user = wp_signon( $creds, false );
        if ( !is_wp_error($autologin_user) ) {
            //Login Success do redirect or whatever
        } else {
            echo "Username or password Incorrect";
        }
    }else{
        echo "Username or password Missing";
    }
好运