现在的wordpress开发主题者都慢慢的走向多用户化,也就说明了wordpress开启注册走向多用户web2.0越来越近。但是对于开放性注册的wordpress站点wordpress登录跳转是需要考虑的,首先是注册后自动跳转免再次点击登录,二来还有应该考虑的是检测登录跳转这都是必须要多多考虑的。
wordpress登录跳转之自动登录并重定向
注册后自动登录并且重定向到指定页面,其实也是实现首次登录重定向的最简便的方法。
/**
* 用户注册成功后自动登录,并跳转到指定页面
* http://z.cc
*/
function auto_login_new_user( $user_id ) {
// 用户注册后自动登录
wp_set_current_user($user_id);
wp_set_auth_cookie($user_id);
// 这里跳转到 http://域名/about 页面,请根据自己的需要修改
wp_redirect( home_url().'about' );
exit;
}
add_action( 'user_register', 'auto_login_new_user');
/*
*自定义登陆之后的重定向链接首页
* http://z.cc
*/
function soi_login_redirect($redirect_to, $request, $user)
{
return (is_array($user->roles) && in_array('administrator', $user->roles)) ? admin_url() : site_url();
}
add_filter('login_redirect', 'soi_login_redirect', 10, 3);
/*
*自定义登陆之后的重定向到特殊的页面
* http://z.cc
*/
function login_redirect( $redirect_to, $request, $user ){
return home_url('custom-page');
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );
wordpress登录跳转之一定时间内登录重定向
注册后的一定时间内,不管是第几次登录,都跳转到指定页面。
/**
* 注册一定时间内登录重定向到指定页面
* http://z.cc
*/
function time_limit_login_redirect( $to, $requested, $user ){
if( !isset( $user->user_login ) ){
return $to;
}
$regtime = strtotime($user->user_registered);
$now = strtotime("now");
$diff = $now - $regtime;
$hours = $diff / 60 / 60;
if( $hours < 48 ){ // 注册后48小时内登录重定向到该页面
return "/about";
} else {
return admin_url(); //WP管理后台
}
}
add_filter('login_redirect', 'time_limit_login_redirect', 10, 3);
wordpress登录跳转之检测登录状态跳转
//用户登陆
if (is_user_logged_in()) {
$url = get_bloginfo('url');
Header("Location:$url");
}
写到这里不管wordpress登录跳转是否应用到您主题模板,但是最后一项检测登录状态是必须的,那么今天的wordpress登录跳转就到了。

