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 后台基本上就对用户隐藏了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,888评论 1 45
  • 学习Django主要觉得该框架比较容易上手,还有Django-admin后台方便使用,但是有些时候我们用Djang...
    橙子丨Sunty阅读 10,526评论 4 24
  • 1、灰色的烟花(颜色是琪琪用几种颜色调出来的,线条是用托马斯车厢的火车轮滚的) 2、琪琪最爱的意面,红色是番茄,棕...
    鑫_930阅读 219评论 0 0
  • 举办线上活动,用老用户带新用户是个促进产品用户数增加的不错选择。本次设计练习采用线上活动的方式,通过老用户分享邀请...
    友交互阅读 3,316评论 3 18
  • 我躺下玩手机有错吗?错在哪里了? 我有时总是不想做任何东西,总喜欢躺下来玩手机,那是多么舒服的事情啊,但是我的大脑...
    取名万里阅读 628评论 0 0

友情链接更多精彩内容