WordPress注册登录后跳转到前端用户中心的方法

WordPress注册登录后跳转到前端用户中心的方法

为增加网站的功能并维持更多用户,我们正在WordPress中添加用户中心。对于高级WordPress用户,这可能不是问题,但是对于新的WordPress用户,在用户中心中开发和创建前端的任务要复杂一些。以下是针对需要开发前端用户中心的朋友在开发过程中遇到的问题的解决方法。

只有管理员才能访问仪表盘,其他用户重定向到用户中心

有了前端用户中心,非管理员用户是没有必要访问默认的仪表盘的,登录后直接跳转到前端用户中心就可以了。
其实操作也很简单,使用文本编辑器打开当前主题目录下的functions.php,在末尾加上以下php代码:

add_action( 'admin_init', 'redirect_non_admin_users' );
function redirect_non_admin_users() {
    if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
        wp_redirect( site_url("/me/") ); #这里的“/me/”是前端用户中心的地址。
        exit;
    }
}

上面的代码需要注意的是“$_SERVER['PHP_SELF']”获取的是域名后面的路径地址,如果你的 WordPress 是安装在子目录的,那么前面的“/wp-admin/admin-ajax.php” 也需要把子目录的名称加上,否则 Ajax 请求会验证不通过。

只对管理员显示工具条

开发了前端用户中心,后台的所有功能当然是不希望用户看到的,可是管理工具条确实又是一个非常好用的功能,我们只需要对非管理用户隐藏工具条就可以了。

if (!current_user_can('manage_options')) {
    add_filter('show_admin_bar', '__return_false');
}

修改登录页面为自定义登陆页面

需要注意的是:不要直接把登录链接链接到前端用户中心登录页面,这样在退出用户中心的时候,注销程序会自动把页面跳转到默认的登录页面。

function wizhi_login_page( $login_url, $redirect ) {
    $new_login_url = home_url('ucenter') . '?redirect_to=' . $redirect;
    return $new_login_url;
}
add_filter( 'login_url', 'wizhi_login_page', 10, 2 );

处理完了以上几个页面之后,WordPress 后台基本上就对用户隐藏了。