网站开通评论功能就会有垃圾评论的可能,这样会浪费很多的精力去处理,有些纯英文还有些附带网址,以下内容为大家讲解了如何使用纯代码正则拦截验证垃圾评论,功能可限制评论纯数字/纯英文/纯表情。

教程开始

将代码放到/wp-content/themes/zibll/functions.php文件即可。注意 此方法评论必须带中文 禁止了纯数字、纯字母和纯表情。

//屏蔽纯英文评论
function refused_english_comments($incoming_comment) {
    // 获取评论内容
    $comment_content = $incoming_comment['comment_content'];
    
    // 去除评论内容中的 [g=xxx] xxx为任意字符串
    $comment_content = preg_replace('/\[g=[^\]]*\]/', '', $comment_content);
    
    // 检查评论内容是否为空 
    if (empty($comment_content)) {
        wp_die('{"error":1,"ys":"danger","msg":"评论不能是纯表情内容 <br/>Comments cannot be purely emoji content"}');
    }
    
    // 检查评论内容是否包含中文
    $pattern = '/[一-龥]/u';
    
    // 禁止全英文评论
    if (!preg_match($pattern, $comment_content)) {
        wp_die('{"error":1,"ys":"danger","msg":"评论必须包括中文 <br/>Comments must include Chinese"}');
    }
    
    return $incoming_comment;
}

add_filter('preprocess_comment', 'refused_english_comments');