WordPress网站评论限制-评论字数+全英文评论+超链接

网站的评论一直都是网站建设中必不可少的一环,今天老白博客@老白就从安全性角度分享一下WordPress网站评论限制功能,从评论字数、全英文评论以及评论超链接三方面谈谈防护方案

WordPress网站评论限制-评论字数+全英文评论+超链接

图片引自网络-https://kn007.net/topics/new-wordpress-comment-management-system/

1.WordPress网站评论字数限制(最少/最多)

之前分享过相关的评论时间限制,感兴趣的朋友可以看看

12996

这个功能其实实现起来很简单,只要利用好 WordPress 为我们提供的 preprocess_comment 钩子即可,使用这个钩子可以实现对评论内容的各种处理,不管是过滤评论中的恶意链接还是处理特定的垃圾评论,通过 preprocess_comment 钩子我们都可以实现。

将下面的代码添加到当前 WordPress 主题的 functions.php 文件:

(转载自:https://www.ilxtx.com/limit-wordpress-comment-length.html,谢谢站长分享)

/**
* 为 WordPress 评论功能增加字数长度限制 - 老白博客
* https://www.xcbtmw.com/14074.html
*/
function lxtx_set_comments_length($commentdata) {
$minCommentlength = 5; //最少字數限制,建议设置为 5-10 个字
$maxCommentlength = 220; //最多字數限制,建议设置为 150-200 个字
$pointCommentlength = mb_strlen($commentdata['comment_content'],'UTF8'); //mb_strlen 一个中文字符当做一个长度
if ( ($pointCommentlength < $minCommentlength) && !is_user_logged_in() ){
err('抱歉,您的评论字数过少,最少输入' . $minCommentlength .'个字(目前字数:'. $pointCommentlength .')【登录后无此限制】');
exit;
}
if ( ($pointCommentlength > $maxCommentlength) && !is_user_logged_in() ){
err('抱歉,您的评论字数过多,最多输入' . $maxCommentlength .'个字(目前字数:'. $pointCommentlength .')【登录后无此限制】');
exit;
}
return $commentdata;
}
add_filter('preprocess_comment', 'lxtx_set_comments_length');

2.评论必须含有中文(禁止全英文、日文)

/**
* WordPress评论功能限制 - 老白博客
* https://www.xcbtmw.com/14074.html
*/
function lxtx_refused_spam_comments($comment_data) {
$pattern = '/[一-龥]/u';
$jpattern = '/[ぁ-ん]+|[ァ-ヴ]+/u';
if (!preg_match($pattern, $comment_data['comment_content'])) {
err(__('来一波汉字吧,苦逼的博主只认识汉字!You should type some Chinese word!'));
}
if (preg_match($jpattern, $comment_data['comment_content'])) {
err(__('原谅博主吧,这货只听得懂岛国神片的一两句雅蠛蝶! You should type some Chinese word!'));
}
return ($comment_data);
}
add_filter('preprocess_comment', 'lxtx_refused_spam_comments');

3.屏蔽昵称,评论内容带链接的评论

function lxtx_Shield_link($comment_data) {
$links = '/http://|https://|www.|.com|.cn|.net|.org/u';
if (preg_match($links, $comment_data['comment_author']) || preg_match($links, $comment_data['comment_content'])) {
err(__('别啊,昵称和评论里面添加链接会怀孕的哟!!'));
}
return ($comment_data);
}
add_filter('preprocess_comment', 'lxtx_Shield_link');

4.屏蔽长链接评论

当评论者链接长度大于 50 个字符时,评论将被当作垃圾评论。

function lxtx_lang_url_spamcheck($approved, $commentdata) {
return (strlen($commentdata['comment_author_url']) > 50) ?
'spam' : $approved;
}
add_filter('pre_comment_approved', 'lxtx_lang_url_spamcheck', 99, 2);

5.设置仅注册用户评论

WordPress-设置-讨论设置

WordPress网站评论限制-评论字数+全英文评论+超链接

内容很多,大家自行点击标签/分类阅读