WordPress 如何实现纯代码添加禁止某些用户登录的方法

在某些特殊情况下某些用户损害了网站的利益,你可能就需要禁止他们登录网站,WordPress博客如何实现免插件纯代码添加禁止某些用户登录的方法,也就是WordPress博客用户怎么实现封号,近日以来网站垃圾信息,垃圾回复泛滥,由于之前不怎么关注这块,但是现在不得不进行梳理一下拿出一个解决方案了,做网站的朋友都知道,自己辛辛苦苦写的文章,发的资源为了防止和谐只提供给网站注册会员使用,需要留言回复文章才可以获取下载地址,但是有一些伸手党随意的乱回复,乱灌水,简直就是一点对起码尊重都没有,好吧为了此问题这下研究了下。

WordPress 如何实现纯代码添加禁止某些用户登录的方法

WordPress博客属于一个比较成熟的开源程序,安全性还是比较高的,官方也一直在更新维护,而且还是免费,WordPress博客的DIY可塑性很牛,由于WordPress博客默认很多功能是没有的,比如这个“WP禁止某些用户登录”都是需要自己DIY加进去的,当然了如果你觉得麻烦伸手党可以直接下载安装 Disable Users 或者 User Control 这2个插件的任意一个来实现。

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

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

/**
* WordPress 禁止某些用户登录
* https://www.53431.com/wordpresscat/jiqiao/925.html
*/
//在资料页面添加选项
function lxtx_rc_admin_init(){
// 编辑用户资料
add_action( 'edit_user_profile', 'lxtx_rc_edit_user_profile' );
add_action( 'edit_user_profile_update', 'lxtx_rc_edit_user_profile_update' );
}
add_action('admin_init', 'lxtx_rc_admin_init' );

//在个人资料页面添加一个复选框
function lxtx_rc_edit_user_profile() {
if ( !current_user_can( 'edit_users' ) ) {
return;
}
global $user_id;
// 用户不能禁止自己
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;
if ( $current_user_id == $user_id ) {
return;
}
?>
<h3>权限设置</h3>
<table class="form-table">
<tr>
<th scope="row">禁止用户登录</th>
<td><label for="lxtx_rc_ban"><input name="lxtx_rc_ban" type="checkbox" id="lxtx_rc_ban"
<?php if (lxtx_rc_is_user_banned( $user_id )){echo 'checked="checked"';} ?> /> 请谨慎操作,选中则禁止!</label></td>
</tr>
</table>
<?php
}

//添加一个函数来将这个选项的值保存到数据库中
function lxtx_rc_edit_user_profile_update() {
if ( !current_user_can( 'edit_users' ) ) {
return;
}
global $user_id;
// 用户不能禁止自己
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;
if ( $current_user_id == $user_id ) {
return;
}
// 锁定
if( isset( $_POST['lxtx_rc_ban'] ) && $_POST['lxtx_rc_ban'] = 'on' ) {
lxtx_rc_ban_user( $user_id );
} else { // 解锁
lxtx_rc_unban_user( $user_id );
}
}

//禁止用户
function lxtx_rc_ban_user( $user_id ) {
$old_status = lxtx_rc_is_user_banned( $user_id );
// 更新状态
if ( !$old_status ) {
update_user_option( $user_id, 'lxtx_rc_banned', true, false );
}
}

//解禁用户
function lxtx_rc_unban_user( $user_id ) {
$old_status = lxtx_rc_is_user_banned( $user_id );
// 更新状态
if ( $old_status ) {
update_user_option( $user_id, 'lxtx_rc_banned', false, false );
}
}

//判断用户是否被禁止
function lxtx_rc_is_user_banned( $user_id ) {
return get_user_option( 'lxtx_rc_banned', $user_id, false );
}

//阻止已禁止的用户登录
function lxtx_rc_authenticate_user( $user ) {
if ( is_wp_error( $user ) ) {
return $user;
}
// 如果用户被禁止,则返回错误提示
$banned = get_user_option( 'lxtx_rc_banned', $user->ID, false );
if ( $banned ) {
return new WP_Error( 'lxtx_rc_banned', __('抱歉,该用户被禁止登录!请联系站长解禁。', 'rc') );
}
return $user;
}
//将该函数挂载到 wp_authenticate_user 钩子
add_filter( 'wp_authenticate_user', 'lxtx_rc_authenticate_user', 1 );

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

WordPress 如何实现纯代码添加禁止某些用户登录的方法

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

这篇文章如果帮到了你 打赏
分享到: 更多 (0)
0
如果文章内容或图片资源失效或者您对文章有异议,请留言反馈或点击右下角邮件图标发送邮件说明情况,我们会及时处理,谢谢!
  • WordPress在文章列表插入一篇广告跳转文章或在任意位置插入广告代码
    这个Wordpress技巧可以让你在文章列表中的任意位置插入一篇或多篇广告跳转文章,完美的与主题结构融合,与主题列表的展现形式一模一样,不用去额外的改变任何结构!而且可以一键无痕的将发布的任何文章变成广告跳转文章! 实现过程非常简单,利用了...
  • wordpress给你的网页添加一个加载动画
    网页加载需要一个过程,现在这个过程可以极短了,不过有些朋友还是希望能用一个动画来代替这个过程,让加载不再那么枯燥。搜索了一下,很多这类文章,方法很多,利用CSS实现应该是最好的办法了。过程很简单,只需两步。 添加方法 第一步 创建一个css...
  • WordPress插件-Post Expirator 给文章或页面设置一个到期时间
    有些时候,一些文章或页面没必要始终展示,比如公告,活动,广告等,但是对于像我一样的懒人们又不想拐回去关闭文章,或者忘记关闭文章。这是你就需要这样一个插件。 Post Expirator 这个插件使用起来比较简单,功能也够强大,可以为文章或者...
  • 代码实现网站外链自动转换为内链
    实现步骤: 首先复制以下代码,添加到主题目录下的function.php文件中 /*  *自动给文章的外部链接添加nofollow属性  */    add_filter('the_content','web589_the_content_...
  • official多用途企业门户官网类WordPress主题自适应wordpress企业主题
    official多用途企业门户官网类WordPress主题WordPress企业主题是由歪主题出品的一款比较简洁实用非常简单的一款wordpress企业类型主题,主题虽然包含多项设置选项,但真正需要设置的很少很少,所以无论你有无经验都可以轻...
  • 五个步骤提升你的WordPress安全等级
    我敢肯定你周围肯定有关于WordPress安全的小故事,或者是数据库被入侵,或者是网站被挂马,甚至整个网站都没了。因此,是非常有必要地针对WordPress执行一些安全措施,尽可能降低WordPress因漏洞而被黑客做手脚。 如何提高你的W...
  • 七大免费WordPress画廊相册插件
    如果你正在准备建立一个以图片为主的WordPress博客,你可能需要考虑图片展示的问题。如果直接平铺一张张展示,貌似显得有点乏味,且会将页面拉得很长。WordPress自带的相册功能,有比较单一。 So,今天的主题是图片和图片相册。事不宜迟...
  • 怎样在wordpress使用Font Awesome字体图标
    Font Awesome是一款矢量的图标或可以称为字体图标,他的所有属性都可以通过CSS进行设定,包括:大小、颜色、阴影或者其它任何支持的效果。不旦有效解决了图像加载慢的问题,而且好提供了超过5000+的图标方案。 在wordpress使用...
  • WordPress 批量删除所有文章的特色图像
    说到 WordPress 的特色图像功能,相信大家都比较熟悉了,今天分享 批量删除所有文章的特色图像 的方法,或许有些朋友会用得上。将下面的代码添加到当前主题的 functions.php : /** * WordPress 批量删除所有文...
  • WordPress 5.0 换回原有”Classic Editor”经典编辑器的三种方法
    WordPress 5.0 正式采用了全新的“Block Editor”编辑器,从而替换了原有“Classic Editor”编辑器,相信有很多人都不习惯或者不喜欢新编辑器,那么新版 WordPress 该如何换回原来的 WordPress...
  • WordPress非插件实现文章点赞功能
    功能丰富的WordPress点赞插件不少,但对于要在主题中集成简单文章点赞功能的需求,插件就显得不合适,于是乎非插件实现文章点赞功能的方法就诞生,实现思路是:可以通过ajax实时显示点赞数量,自定义字段保存赞数量,Cookies禁止重新点赞...
  • WordPress自定义登录页面LOGO、链接、文本、样式等
    自定义 WordPress 登录界面 Logo 在主题目录 functions.php 中加入以下代码: //自定义WordPress登录界面Logo function fanly_custom_login_logo() { echo '&...

评论 抢沙发



觉得文章有用就赞赏支持一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏