WordPress禁止个别用户发表恶意违规评论

WordPress禁止个别用户发表恶意违规评论,第1张

WordPress网站注册用户多了以后,会有个别用户发布一些违规、不良、垃圾评论,这对网络环境也是一种污染。
下面教大家通过代码实现对个别用户禁言。

WordPress禁止个别用户发表恶意违规评论,第2张


1、在后台给用户资料版块添加一个“禁止用户评论”的功能,将代码放到主题的function.php文件下。

/**

 * WordPress 禁止某些用户评论

 */

//在资料页面添加选项

function lxtx_usercmt_admin_init(){ 

// 编辑用户资料

add_action( 'edit_user_profile', 'lxtx_usercmt_edit_user_profile' );

add_action( 'edit_user_profile_update', 'lxtx_usercmt_user_profile_update' ); 

}

add_action('admin_init', 'lxtx_usercmt_admin_init' );

//在个人资料页面添加一个复选框

function lxtx_usercmt_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_usercmt_ban"><input name="lxtx_usercmt_ban" type="checkbox" id="lxtx_usercmt_ban" 

<?php if (lxtx_usercmt_is_user_banned( $user_id )){echo 'checked="checked"';} ?> /> 请谨慎操作,选中则禁止!</label></td>

</tr>

</table>

<?php

}

//添加一个函数来将这个选项的值保存到数据库中

function lxtx_usercmt_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_usercmt_ban'] ) && $_POST['lxtx_usercmt_ban'] = 'on' ) {

lxtx_usercmt_ban_user( $user_id );

} else { // 解锁

lxtx_usercmt_unban_user( $user_id );

}

//禁止用户

function lxtx_usercmt_ban_user( $user_id ) { 

$old_status = lxtx_usercmt_is_user_banned( $user_id ); 

// 更新状态

if ( !$old_status ) {

update_user_option( $user_id, 'lxtx_usercmt_banned', true, false );

}

}

//解禁用户

function lxtx_usercmt_unban_user( $user_id ) { 

$old_status = lxtx_usercmt_is_user_banned( $user_id ); 

// 更新状态

if ( $old_status ) {

update_user_option( $user_id, 'lxtx_usercmt_banned', false, false );

}

}

//判断用户是否被禁止

function lxtx_usercmt_is_user_banned( $user_id ) {

return get_user_option( 'lxtx_usercmt_banned', $user_id, false );

}


2、前端弄禁言提示,同样是添加到function.php文件里:

 

//阻止已禁止的用户评论

function lxtx_usercmt_authenticate_user( $commentdata ) {

    if( lxtx_usercmt_is_user_banned( $commentdata['user_ID'] ) ){

        err(__('由于您违反相关规定,该账号已被禁言'));

    }else{

        return $commentdata;

    }

}

if( is_user_logged_in() ){

    add_filter( 'preprocess_comment' , 'lxtx_usercmt_authenticate_user' );

}


3、后台操作禁言用户

在后台“用户”项里搜索到对应的用户,点击“编辑”,进入到用户资料设置。
头像设置的下面,会多一个禁言用户的选项,把勾打上。然后点击更新用户。就禁言成功了。

 

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » WordPress禁止个别用户发表恶意违规评论

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情