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


Warning: Undefined variable $result in /www/wwwroot/munue.com/wp-content/themes/Autumn-Pro/functions.php on line 64

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

可能很多站长都用过 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');

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

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

相关推荐

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

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

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

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

如何解决更新 WordPress 需要访问您网页服务器的权限问题?

网站提示有 WordPress 更新可用,但在线更新时却提示:要执行请求的操作,WordPress需要访问您网页服务器的权限。请输入您的 FTP 登录凭据以继续。 我输入 FTP 登录用户名和密码,网页无响应。我猜测会否主机名错误了,就填写了 FTP 地址,仍然是错误的。 网络搜索了一下,有网友遇到相同问题,给出的解决办法是,在 Wor ...

WordPress 在线更新失败,原因竟是 cURL 组件出了错

我有更新升级程序的执念,看到有新版而不能更新,心里会特别纠结。但我的 WordPress 程序和主题、插件,近半年多来一直不能在线更新,让我特别的不爽。 之前认为是网络访问的问题,由于 wordpress.org 网站在国外,很容易会被屏蔽,使用 WP-China-Yes 插件就解决了。详见(WordPress 更新插件出现"下载失败。cURL error ...

4 条评论

  1. 这个还是有必要搞的

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

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

发表评论

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