如何解决WordPress多站点:成功登录后,将用户重定向到其站点管理面板
此功能用于建立用户对他们所属站点的免登录管理员访问权限。但是,我收到“太多重定向”错误消息。
add_action('wp_authenticate','custom_login');
function custom_login(){
$creds = array();
$creds['user_login'] = 'test';
$creds['user_password'] = 'test123';
$creds['remember'] = true;
$user_verify = wp_signon($creds,true);
wp_clear_auth_cookie();
wp_set_auth_cookie($user_verify->data->ID);
wp_set_current_user($user_verify->data->ID);
//fetch the user' site id and redirect to the site.
$user_blogs = get_blogs_of_user($user_verify->data->ID);
if (!empty($user_blogs)) {
$user_site = array();
foreach ($user_blogs as $site_id => $site_values) {
$user_site[] = $site_values->siteurl;
}
// Cookies
setcookie('COOKIE_DOMAIN',$user_site[0]);
setcookie('COOKIEHASH',md5($user_site[0]));
setcookie( 'COOKIEPATH','/' );
setcookie(TEST_COOKIE,'WP Cookie check',COOKIEPATH,COOKIE_DOMAIN,$secure );
setcookie( 'wp-settings-time-' . $user->data->ID,time() + YEAR_IN_SECONDS,$secure );
wp_safe_redirect($siteInfo[0]);
exit;
}
}
解决方法
成功登录后,您需要使用'login_redirect“钩子来重定向用户 “ / wp-admin”是您希望用户重定向到的URL,您可以根据需要进行编辑。登录完成后会触发“ login_redirect”,因此“ wp_authenticate”与“ login_redirect”不同。试试看,让我知道。
function admin_default_page($redirect_to,$request,$user) {
return '/wp-admin';
}
add_filter('login_redirect','admin_default_page',10,3);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。