!
也想出现在这里? 联系我们
广告位

WordPress 纯代码添禁止某些用户登录

在某些特殊情况下某些用户损害了网站的利益,你可能就需要禁止他们登录网站,WordPress 博客如何实现免插件纯代码添加禁止某些用户登录的方法,也就是 WordPress 博客用户怎么实现封号.

近日以来网站垃圾信息,垃圾回复泛滥,由于之前不怎么关注这块,但是现在不得不进行梳理一下拿出一个解决方案。

做网站的朋友都知道,自己辛辛苦苦写的文章,发的资源为了防止和谐只提供给网站注册会员使用,需要留言回复文章才可以获取下载地址。

但是有一些伸手党随意的乱回复,乱灌水,简直就是一点对起码尊重都没有,好吧为了此问题这下研究了下。

WordPress 博客属于一个比较成熟的开源程序,安全性还是比较高的,官方也一直在更新维护,而且还是免费。

WordPress 博客的 DIY 可塑性很牛,由于 WordPress 博客默认很多功能是没有的,比如这个“WP 禁止某些用户登录”都是需要自己 DIY 加进去的。

当然了如果你觉得麻烦伸手党可以直接下载安装 Disable Users 或者 User Control 这 2 个插件的任意一个来实现。

下面为大家谈一谈 WordPress 博客如何实现纯代码添加禁止某些用户登录的方法,由于插件太多会导致网站的效率降低,网站打开速度越来越卡,或者越来越慢,我们不需要利用插件只需要一串代码即可实现。

我们只需要在在当前使用的主题目录下的“ functions.php”中加入以下代码即可:

  1. /**
  2. * WordPress 禁止某些用户登录
  3. */
  4. //在资料页面添加选项
  5. function lxtx_rc_admin_init(){
  6. // 编辑用户资料
  7. add_action( 'edit_user_profile', 'lxtx_rc_edit_user_profile' );
  8. add_action( 'edit_user_profile_update', 'lxtx_rc_edit_user_profile_update' );
  9. }
  10. add_action('admin_init', 'lxtx_rc_admin_init' );
  11. //在个人资料页面添加一个复选框
  12. function lxtx_rc_edit_user_profile() {
  13. if ( !current_user_can( 'edit_users' ) ) {
  14. return;
  15. }
  16. global $user_id;
  17. // 用户不能禁止自己
  18. $current_user = wp_get_current_user();
  19. $current_user_id = $current_user->ID;
  20. if ( $current_user_id == $user_id ) {
  21. return;
  22. }
  23. ?>
  24. <h3>权限设置</h3>
  25. <table class="form-table">
  26. <tr>
  27. <th scope="row">禁止用户登录</th>
  28. <td><label for="lxtx_rc_ban"><input name="lxtx_rc_ban" type="checkbox" id="lxtx_rc_ban"
  29. <?php if (lxtx_rc_is_user_banned( $user_id )){echo 'checked="checked"';} ?> /> 请谨慎操作,选中则禁止!</label></td>
  30. </tr>
  31. </table>
  32. <?php
  33. }
  34. //添加一个函数来将这个选项的值保存到数据库中
  35. function lxtx_rc_edit_user_profile_update() {
  36. if ( !current_user_can( 'edit_users' ) ) {
  37. return;
  38. }
  39. global $user_id;
  40. // 用户不能禁止自己
  41. $current_user = wp_get_current_user();
  42. $current_user_id = $current_user->ID;
  43. if ( $current_user_id == $user_id ) {
  44. return;
  45. }
  46. // 锁定
  47. if( isset( $_POST['lxtx_rc_ban'] ) && $_POST['lxtx_rc_ban'] = 'on' ) {
  48. lxtx_rc_ban_user( $user_id );
  49. } else { // 解锁
  50. lxtx_rc_unban_user( $user_id );
  51. }
  52. }
  53. //禁止用户
  54. function lxtx_rc_ban_user( $user_id ) {
  55. $old_status = lxtx_rc_is_user_banned( $user_id );
  56. // 更新状态
  57. if ( !$old_status ) {
  58. update_user_option( $user_id, 'lxtx_rc_banned', true, false );
  59. }
  60. }
  61. //解禁用户
  62. function lxtx_rc_unban_user( $user_id ) {
  63. $old_status = lxtx_rc_is_user_banned( $user_id );
  64. // 更新状态
  65. if ( $old_status ) {
  66. update_user_option( $user_id, 'lxtx_rc_banned', false, false );
  67. }
  68. }
  69. //判断用户是否被禁止
  70. function lxtx_rc_is_user_banned( $user_id ) {
  71. return get_user_option( 'lxtx_rc_banned', $user_id, false );
  72. }
  73. //阻止已禁止的用户登录
  74. function lxtx_rc_authenticate_user( $user ) {
  75. if ( is_wp_error( $user ) ) {
  76. return $user;
  77. }
  78. // 如果用户被禁止,则返回错误提示
  79. $banned = get_user_option( 'lxtx_rc_banned', $user->ID, false );
  80. if ( $banned ) {
  81. return new WP_Error( 'lxtx_rc_banned', __('抱歉,该用户被禁止登录!请联系站长解禁。', 'rc') );
  82. }
  83. return $user;
  84. }
  85. //将该函数挂载到 wp_authenticate_user 钩子
  86. add_filter( 'wp_authenticate_user', 'lxtx_rc_authenticate_user', 1 );

在我们的当前主题添加上面的代码后,我们即可在后台“编辑用户”的菜单里看到我们增加的“禁止用户登录”选项了;选中后,则会禁止该用户登录,如下图提示:

以上就是 WP 博客如何实现纯代码添加禁止某些用户登录的方法的全部教程,如果有更好的方法欢迎留言提出来,大家一起探讨交流。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

添加支付宝即时到帐POST捐赠按钮功能

2024-5-17 9:55:32

WordPress教程

WordPress添加侧边悬浮百度分享按钮

2024-5-17 9:55:44

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索