我试图创建一个自定义的前端登录页面。我知道有很多前端登录插件,例如配置文件生成器,但是我需要根据只读用户名的特殊客户端要求开发一个自定义插件,该用户名由作为URL参数传递的用户名填充,然后输入密码并提交,我们需要登录用户并将其重定向到WordPress个人资料页面。这就是为什么我创建一个自定义登录页面作为主题模板的原因。
提交后,我在验证密码后添加了此代码,以登录用户并重定向到个人资料页面
wp_set_current_user( $user_info->ID, $user_info->user_login );
wp_set_auth_cookie( $user_info->ID, true, false );
do_action( 'wp_login', $user_info->user_login );
if (is_user_logged_in()) {
wp_safe_redirect('/wp-admin/profile.php');
}
有时这可以正常工作,并且加载配置文件页面。但是有时,它无法正常工作,并且将其从个人资料页面重定向到wp-login.php
我什至尝试添加以下代码
$creds = array();
$creds['user_login'] = $user_info->user_login;
$creds['user_password'] = $user_pass;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
但是没有用。
我坚持这一点,因为除了在互联网上尝试以编程方式在Wordpress中登录用户外,我什么都没有看到。但这有时不起作用。始终将用户标识为在前端登录(使用is_user_logged_in()检查或检索前端当前登录的用户时)。但是后端有时无法将其标识为已登录。
请帮助我找出问题所在以及解决方法
答案 0 :(得分:0)
您可以使用“仅限前端用户” plugin,也可以按照code进行操作。
可以通过此参数完成
$args = array(
'echo' => true,
'redirect' => home_url( '/wp-admin/' ),
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => NULL,
'value_remember' => true
);
// Calling the login form.
wp_login_form( $args );