WordPress 纯代码拦截英文、日文垃圾评论的方法

这段时间都在纠结网站搜索引擎收录不佳的问题,这里没什么成效,却发现一个新的问题:垃圾评论泛滥。很多都是全英文或全日文的垃圾评论,一个评论可能比文章还长,而且一来就是一群,每天删除都花不少精力。

可能很多站长都用过 WordPress 官方出的 Akismet 插件,它通过大数据能够拦截绝大多数垃圾评论,但是它的服务器在国外,国内站点启用之后,用户评论明显变慢,页面加载速度也受到影响。

当然,你也可以通过 设置 - 讨论 中设置“禁止使用的评论关键字”,当评论者的内容、名称、网址、电邮、IP或浏览器用户代理字串中包含以下关键词,这则评论将被移入回收站。每行输入一个词或IP地址。

但 WordPrss 会在单词的内部进行匹配,如“WordPress”将与关键词“press”相匹配,造成误伤率比较高,操作起来不太灵活。

看到空木白博客有个纯代码拦截英文、日文垃圾评论的方法,觉得不错。只需将以下代码复制到当前主题的  functions.php 文件中即可。

// 屏蔽纯英文评论和纯日文

function refused_english_comments($incoming_comment) {

$pattern = '/[一-龥]/u';

// 禁止全英文评论

if(!preg_match($pattern, $incoming_comment['comment_content'])) {

wp_die( "您的评论中必须包含汉字!" );

}

$pattern = '/[あ-んア-ン]/u';

// 禁止日文评论

if(preg_match($pattern, $incoming_comment['comment_content'])) {

wp_die( "评论禁止包含日文!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'refused_english_comments');

当评论提交时,通过正则表达式匹配评论内容,如果评论是纯英文或者包含了日文,则跳转到提示页面。

从这两天的运行情况看,果然没有了那大把的全英文垃圾评论,感觉自己的网站一下子清朗了许多。

生成海报
点赞 1

4 条评论

  1. 0 那些英文垃圾邮件都是机器发的,最简单的办法就是加个验证码

    • @鸟叔 0 我不太喜欢加验证码,觉得又把一个想留言的人给往外推了。哈哈。

  2. 0 这个还是有必要搞的

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐

WordPress 站点之间内容迁移的简单教程

昨天,我个人博客再做减法,又被我干掉一个网站,但内容被我迁移到了主博客中来,由于两个网站都是用 WordPress 博客程序搭建的,内容迁移非常方便,并且完整保留了文章、评论、标签,连图片地址都不用修改。下面我把整个迁移过程作个简单的记录。 一、源站点的预准备 源站点的内容,我分成了多个分类,如果像我一样迁移到目 ...

用老薛主机子域功能做网站备份的方法

老薛主机可以无限建站,虽然是4G的进阶段香港主机,放个5、6个网站是没问题的,所以我把原来几个老网站的数据都迁到了老薛主机上,算是做个网站备份,有些文章的内容还有用,可方便查找。 如果你要继续使用独立域名,选择老薛主机 cPanel 的附加域功能,如果你只用二级域名,则选择 cPanel 的子域功能。 1、创建子域。登录 c ...

WordPress 网站纯代码实现“历史上的今天”文章调用方法

网站创建一年多了,文章也有500多篇了,如何让历史文章多个展现的机会,除了相关文章推荐,站长们还经常会用到“历史上的今天”功能,即在文章末端调用前几年同一天发布的文章列表。 这个功能最初是由柳城创建的 wp-today 插件实现的,这个插件已经停更多年了,其核心代码也不复杂,我们可以复制里面的代码到 WordPress 网站主 ...

WordPress 定时发布失败的解决办法

最近将【知行拾贝】的内容整合进了本站中,列为“节日”分类,因为有些内容是可预知的,所以就提前整理好文章定时发布,但每篇都是“定时发布失败”,WordPress 的定时发布功能好看不好用。 网友们都说大多数定时发布文章失败的原因是主机访问速度慢,发布超时造成的,也有说插件冲突造成。按某位技术君的说法是: 通常,当你安 ...