用的人太多了,所以会出现很多垃圾评论灌水,打广告,特别是国外的垃圾评论。下面教大家彻底屏蔽这些垃圾评论。打开 function.php 文件,根据需要添加下面的内容:
//防灌水
function scp_comment_post( $incoming_comment ) {
// 禁止全英文评论
$pattern = '/[\x7f-\xff]/';
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
wp_die( "您的评论中必须包含汉字!
you should type some chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! " );
}
//禁止 a 链接
if(strstr($incoming_comment['comment_content'], "
另外还可以根据评论黑名单中的关键词来直接阻止评论,这样垃圾评论就不会写入数据库了。
在后台“设置” > “讨论” > 评论黑名单中添加相应的垃圾评论关键词即可。如在黑名单中添加“信用卡”,那么当评论的内容、评论者名称、url、电子邮件或ip地址中包含其中任何关键字(如信用卡)时,系统将会禁止提交到数据库。
//屏蔽关键词,email,url,ip
function shield_fuckspam($comment) {
if (wp_blacklist_check($comment['comment_author'], $comment['comment_author_email'], $comment['comment_author_url'], $comment['comment_content'], $comment['comment_author_ip'], $comment['comment_agent'])) {
header("content-type: text/html; charset=utf-8");
err(__('不好意思,您的评论违反评论规则'));
} else {
return $comment;
}
}
add_filter('preprocess_comment', 'shield_fuckspam');
代码解析:
$pattern的值是正则表达式,前者是汉字编码范围,后者是日文编码范围,也就是评论必须包含中文,并且不能包含日文,否则拒绝提交。
以上的代码采用wp_die输出错误信息!如果贵站使用comments-ajax.php处理提交,请将wp_die换成err!否则会出现500错误!
最后终极大招网站屏蔽机器人垃圾评论:
function antiemptyua(){
//获取ua信息
$ua = $_server['http_user_agent'];
//将恶意user_agent存入数组
$now_ua = array('feeddemon ','bot/0.1 (bot for jce)','crawldaddy ','java','feedly','universalfeedparser','apachebench','swiftbot','zmeu','indy library','obot','jaunty','yandexbot','ahrefsbot','yisouspider','jikespider','mj12bot','winhttp','easouspider','httpclient','microsoft url control','yyspider','jaunty','python-urllib','lightdeckreports bot');//禁止空user_agent,dedecms等主流采集程序都是空user_agent,部分sql注入工具也是空user_agent
if(!$ua) {
header("content-type: text/html; charset=utf-8");
wp_die('机器人,滚粗!');
}else{
foreach($now_ua as $value )
//判断是否是数组中存在的ua
if(eregi($value,$ua)) {
header("content-type: text/html; charset=utf-8");
wp_die('机器人,滚粗!');
}
}
}
防止访问者或机器人恶意频繁刷新、大流量访问:
function antiemptyua(){
//获取ua信息
$ua = $_server['http_user_agent'];
//将恶意user_agent存入数组
$now_ua = array('feeddemon ','bot/0.1 (bot for jce)','crawldaddy ','java','feedly','universalfeedparser','apachebench','swiftbot','zmeu','indy library','obot','jaunty','yandexbot','ahrefsbot','yisouspider','jikespider','mj12bot','winhttp','easouspider','httpclient','microsoft url control','yyspider','jaunty','python-urllib','lightdeckreports bot');//禁止空user_agent,dedecms等主流采集程序都是空user_agent,部分sql注入工具也是空user_agent
if(!$ua) {
header("content-type: text/html; charset=utf-8");
wp_die('请勿采集本站!');
}else{
foreach($now_ua as $value )
//判断是否是数组中存在的ua
if(eregi($value,$ua)) {
header("content-type: text/html; charset=utf-8");
wp_die('请勿采集本站!');
}
}
}
以上代码中function anticc($time_sep)的“$time_sep”是控制$time_sep秒中内允许用户访问一次,比如$time_sep=3时,如果用户在3秒内访问超过一次,系统则会提示“警告:请求过于频繁”,并且只有等待三秒后才能访问本网站。
利用htaccess屏蔽机器人垃圾评论:
# begin 屏蔽垃圾留言:屏蔽空referrer留言
rewriteengine on
rewritecond %{request_method} post
rewritecond %{request_uri} .wp-comments-post\.php*
rewritecond %{http_referer} !.*wangbaiyuan.cn.* [or]
rewritecond %{http_user_agent} ^$
rewriterule (.*) ^http://%{remote_addr}/$ [r=301,l]
# end 屏蔽垃圾留言:屏蔽空referrer留言
以上就是 屏蔽垃圾评论方法一些汇总了,附上大量敏感词库下载地址: (密码:uehm)
# 更多技巧,请关注「专题」