WordPress的登录注册系统有很多问题,不符合一般用户的使用习惯,举例来说:

(1)注册时候无法自行设置登录密码,系统将自行生成一段非常复杂的密码给用户,根本无法记忆,只能再次重置密码。

(2)用户注册成功后,首次登录将跳转到一个无用的(对于博客网站来说)个人资料界面,其实对于博客网站来说,用户之所以登录,无非是想更方便的进行评论,与作者或者其他读者交流,再无其他。

(3)用户登陆后,网站页面上方会出现一栏无用的黑色工具栏,非常影响网站视觉效果。

(4)WordPress网站的登录注册系统,通常是放在小工具中的“功能”选项中,功能中通常还包括RSS订阅与WordPress官网链接,这对一般用户来说也是多余的。

在官网的插件库中找了一圈,终于发现一款相对来说不错的登录系统优化插件Theme My Login(https://wordpress.org/plugins/theme-my-login/),这款插件主要有以下几个特点:

  • 可以完美融合进当前所用主题,无需重新设置css样式。
  • 可自定义用户登录方式,邮箱登录/用户名登录/邮箱或用户名登录。
  • 可自定义注册/找回密码通知邮件。
  • 可使用户自定义登录密码。
  • 可自定义url重定向,例如用户登录/登出后跳转的链接。
  • 可自定义用户链接。
  • 支持reCAPTCHA验证码系统(大陆用不了这个系统,所以可忽略这个功能)。
  • 支持用户安全设定,如1小时内五次登录失败封号处理。
  • 可自定义用户验证方式。

reCAPTCHA:CMU(卡耐基梅隆大学)设计一个强大的验证码系统,让电脑去向人类求助。具体做法是:将OCR(光学自动识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片;那些网站的用户在正确识别出这些文字之后,其答案便会被传回CMU。

插件安装完成后,左侧工具栏会出现一个名为“TML”的设置区,点击General选项,进入设置页面,插件默认勾选了Enable “theme-my-login.css”和Login Type中的Username or E-mail选项,这两个选项建议保留勾选。

下方的拓展模块默认均未勾选,建议勾选如下几个:

保存更改后TML设置一栏便会新增相应设置。

1)redirection建议设置如下(因为注册用户默认为订阅者,所以设置订阅者即可):

referer选项即登录后跳转到用户之前所浏览页面,这样比较符合用户使用习惯。

登出后跳转到网站首页,在第三栏中填入网站首页即可。

2)User Links即此处的用户可点击链接:

建议设置如下:

同样,只设置订阅者即可,此处设置本来是保有Dashboard仪表盘和profile用户资料的链接的,但由于WordPress的用户资料系统做的并不好,且该页面一般与网站风格不一致,所以我不建议保留此项链接(个人建议,还是要根据实际应用场景选择),相应的,我将其替换为我的CSDN博客链接。站长可根据自己需要在此添加网站其他部分的链接,例如:进入论坛,资料下载。

3)Security设置,建议保留默认设置即可。

如何用户在1个小时尝试五次登录失败,即锁定该账号24小时。

4)Moderation设置

从上到下依次为:无需验证、需邮件验证、需管理员验证,可根据需要选择。

5)如何添加登录注册功能到网站页面。

theme my login插件安装完成后,会自动添加到“外观-小工具”中,名为“theme my login”,自定义添加位置即可。添加完成后效果如下:

相比之前的登录功能还是要简单人性化很多。

6)如何修改注册登录页面。

theme my login安装完成后,wordpress的页面中会出现几个相关的页面,即用户点击相应功能时显示的页面。如需修改,编辑即可。例如若用户名只支持英文字母、下划线、数字,应当给予用户相应提示,可编辑注册页面:

7)用户登录后页面上方出现工具栏影响视觉效果。

这本是WordPress为用户提供方便的一种设计,但实际场景中,这样的设计并不友好,因为该工具栏实际上只对网站管理者有用。虽然我们可以在用户-编辑中手动为用户选择不显示此工具栏,但这样并不实际。WordPress的插件库中同样也有个插件,能方便地完成此项设置。

WP Custom Admin Bar(https://wordpress.org/plugins/wp-custom-admin-bar/)

设置如下:

仅管理员可见工具栏,或管理员、作者、投稿者可见工具栏,订阅者不可见。

8)重置密码邮件中链接无效的问题。

这个问题由来已久,直至最新版本的WordPress4.7.3依然存在(也许在英文世界中这个问题不是问题,所以官方也一直没有解决),仔细观察邮件中的重置密码链接就会发现链接无效的原因是邮件系统自动将<http://………..>中右侧的>也算入到有效链接中去了,即<http://………..>。

打开WordPress根目录中的wp-login.php文件,在332行左右有如下代码片段:

去掉链接的美化修饰符<>即可。

即将

$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";

改为

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ;

即可。

但这种方法在升级WordPress后会实效,因为新的wp-login文件会覆盖旧的文件。所以推荐在当前主题的function.php文件中重新定义重置密码函数,仿照wp-login中的写法,在function.php的文件末尾添加如下代码:

function reset_password_message( $message, $key ) {if ( strpos($_POST['user_login'], '@') ) {$user_data = get_user_by('email', trim($_POST['user_login']));} else {$login = trim($_POST['user_login']);$user_data = get_user_by('login', $login);}$user_login = $user_data->user_login;$msg = __('该账号请求重置密码:'). "\r\n\r\n";$msg .= network_site_url() . "\r\n\r\n";$msg .= sprintf(__('用户名:%s'), $user_login) . "\r\n\r\n";$msg .= __('如果这不是您本人的要求,请忽略本邮件。') . "\r\n\r\n";$msg .= __('要重置您的密码,请点击下方链接:'). "\r\n\r\n";$msg .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ;return $msg;
}
add_filter('retrieve_password_message', reset_password_message, null, 2);

9)用户首次登录跳转到用户资料页面,如何自定义用户首次登录跳转页面。

如果用户注册成功后能够自动登录,这样的体验应当是更完美的,另外,由于WordPress的用户资料中心做的并不好,所以能够让用户登录号跳转到网站首页或指定页面,当然是更直接的。

为此,我们可以在当前主题的function.php文件中的第一个<?php后添加如下代码:

function auto_login_new_user( $user_id ) {wp_set_current_user($user_id);wp_set_auth_cookie($user_id);wp_redirect( home_url() );  // 跳转到首页,可自定义exit;
}
add_action( 'user_register', 'auto_login_new_user');

WordPress登录注册系统的优化相关推荐

  1. WordPress注册登录注册系统插件

    简介: WordPress的登录注册系统有很多问题,不符合一般用户的使用习惯,举例来说: (1)注册时候无法自行设置登录密码,系统将自行生成一段非常复杂的密码给用户,根本无法记忆,只能再次重置密码. ...

  2. 【JAVA】网页版登录注册系统2.0

    前言 JAVA实现网页的登录与注册2.0版 一.环境的搭建 导入1.0版本的项目Java实现网页版登录注册系统-Java文档类资源-CSDN文库可参考[JAVA]网页版登录注册系统_Lx_Hy_的博客 ...

  3. java注册登录客户端_GitHub - a-voyager/LoginSystem_Client: 登录注册系统(桌面客户端)——Java课程实践...

    基于HTTP协议和MySQL的多平台登录注册系统 摘要 基于HTTP协议和MySQL的多平台登录注册系统主要用于模拟演示互联网中常见的BS/CS模式登录注册系统.目前网络互访一般基于两种协议HTTP协 ...

  4. Python实现登录注册系统

    登录注册系统 1 数据持久化 2 步骤 3 代码 1 数据持久化 因为需要下一次运行程序的时候可以使用上一次注册的账号,所以已经注册过的账号需要持久化. 2 步骤 1.确定持久化对象:所有已经注册过的 ...

  5. Android+Blockly大作业(含登录注册系统、碎片式浏览、Blockly设计)

    此次大作业实现功能包括: 1.数据库的搭建 2.登录注册界面及主界面界面的设计 3.碎片的应用 4.webBlockly的嵌套 我曾在不同活动调用数据库的bug.数据库的检索和碎片的实现上花了很多时间 ...

  6. 【JAVA】网页版登录注册系统

    目录 前言 一.环境的搭建 二.功能实现 1.登录功能 2.注册功能 [注意] 总结 前言 JAVA实现网页的登录与注册 一.环境的搭建 1.创建Maven Web工程,参考[JAVA]Web服务器- ...

  7. python 搭建登陆系统,用Python连接操作MySQL数据库,做一个简单的用户登录注册系统...

    我们可以很容易地用Python实现一个用户登录系统,相信这即使是对编程新手来说也是小菜一碟. 作为Python的小萌新,今天我想记录下来的是如何实现一个连接了MySQL数据库的用户登录注册系统,它的效 ...

  8. java优化登录注册,Java-Web(项目)优化登录注册

    Java-Web(项目)优化登录注册 Java-Web(项目)优化登录注册 实现代码: package com.homework.dao1; public interface Login { publ ...

  9. WordPress登录注册评论滑动图片验证码插件腾讯云验证码(CAPTCHA)

    为了网站安全我们一般会在登录页.注册页.评论页添加验证码功能,传统的验证码都是输入字母数字或加减法等,现在比较流行图片滑动验证码.最为关键的是腾讯云提供有图形验证(图片滑动验证码)服务器(一年内提供几 ...

最新文章

  1. 目标检测推理部署:优化和部署
  2. Apache Shiro教程
  3. 微信小程序网络请求代码片段
  4. RocketMQ与kafka对比(18项差异)-转自阿里中间件
  5. Unet项目解析(2):./src/retinaNN_training.py
  6. qtabwidget设置tab高度_VC|富文本编辑框CRichEditCtrl的字体与段落设置
  7. python并发处理list数据_3种方式实现python多线程并发处理
  8. mysql设置查询结果最大值_查找MySQL查询结果字段的最大值
  9. kali linux操作系统
  10. android之去掉空包合并
  11. extremecomponents-1.0.1.jar 的使用小例子
  12. 孪生网络keras实现minist
  13. 房屋水电煤气省钱秘籍
  14. 树莓派笔记12:通过SPI操作OLED显示屏
  15. 怎么访问云服务器上的图片
  16. 利用python画爱心表白
  17. 树莓派驱动低成本双目VR摄像头
  18. u盘怎么装电脑系统 u盘启动盘系统重装教学
  19. 乱弹琴20140421
  20. Android培训班 4

热门文章

  1. MPTCP iperf 发包方式
  2. 看个小程序,测测你细心不细心
  3. 数字空间中的二值形态学
  4. 标幺值下Simulink三相瞬时功率模块输出端加增益2/3的原因
  5. 自我鉴定300字大专计算机应用,业余大专自我鉴定300字(精选8篇)
  6. 2021 ICPC沈阳 J.Luggage Lock(bfs,模拟)
  7. 电脑pdf怎么转换成excel表格呢?
  8. 整理一些ps4的DNS
  9. AVI音视频封装格式学习(五)——h265与PCM合成AVI文件
  10. 小清新个人简历PPT模板