为了提升网站对用户的粘合度,作为站长的我们一般都会选择开放WordPress网站的注册权限。而开放了注册权限后,注册用户登录后,就会直接进入到wordpress网站的的后台,这个有点不太友好,这不就让用户直接就知道网站是用wordpress做的吗?当然,对于熟悉wordpress的用户来说,想让他以为不是wordpress做的,那是不可能的。为了提高用户体验,我们可以为WordPress主题添加功能:非管理员帐号登录时就直接进入网站的首页,这也是其它非wordpress网站所采用的方式。
那么,wordpress主题如何实现非管理员登录后进入首页?其实,实现起来也不是太难,代码如下:
//登录后跳转到首页
function login_redirect( $redirect_to, $request, $user ){
global $user;
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
//如果登录用户是订阅者 或 投稿者 或 作者 的身份
if ( in_array( 'subscriber', $user->roles ) || in_array( 'contributor', $user->roles ) || in_array( 'author', $user->roles ) ) {
return home_url(); //指向首页
} else {
return admin_url(); //指向后台管理
}
}
return;;
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );
上面的代码意思是:如果这个用户是管理员,就让他进入后台,如果不是管理员,跳转到网站首页。这里用到了login_redirect登录勾子,在这个勾子中添加了上面的代码进入,进行过滤。
如果你也想让自己的wordpress网站的新用户登录后,不让进后台,而是进入到网站首页,那就试试我的这段代码吧,相信会给你带来一定的收获。当然,如果用户在登录后,通过wordpress后台的链接还是可以进入后台的。在下一章中我们会介绍限制非管理员用户进入后台。