WordPress 自定义注册登录以及登陆后跳转到前端自定义用户中心
文 / @UTHEME
关于开发WordPress用户中心的问题:
越来越多的WordPress用户开始添加用户中心,以增加网站功能并留住更多用户。对于高级用户而言,这可能并不是问题,但对于新手来说,开发创建前端用户中心的任务可能有些棘手。下面是我对开发WordPress用户中心过程中遇到的一些常见问题的总结,供有前端用户中心开发需求的读者参考。
只有管理员才能访问仪表盘,其他用户重定向到用户中心
有了前端用户中心,非管理员用户就没必要访问默认的仪表盘了,应该直接跳转到前端用户中心。为此,我们可以采用以下代码实现:
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后台基本上就已经对用户隐藏了。但还有一个问题需要解决——如何隐藏wp-login.php页面,使用户无法直接访问默认的登录注册页面?如果你知道解决方法,欢迎在评论区里分享。

相关文章
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
创建Vue组件详细教程 2023-09-10 00:23:17
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02
-
Astra 主题团队推出人工智能驱动的 WordPress 网站创建平台 – ZIPWP 2023-08-28 16:49:54
-
WordPress 宣布将为用户提供 100 年域名托管服务 2023-08-28 16:45:27
-
PHP判断if else 和 switch case的区别盘点 2023-07-29 15:11:11
-
详解WordPress独立站SEM中的OCPC方法(含百度推广OCPC与谷歌OCPC) 2023-07-19 08:01:30
-
WordPress的古腾堡全站编辑器site-editor.php介绍(附:site-editor.php启用代码) 2023-07-16 08:01:57
-
WordPress的Customize Partial功能最全介绍(含:demo代码) 2023-07-16 00:21:56