字号+
字号-
垃圾评论层出不穷,从上周到现在两周竟然有400多条英文和垃圾的评论。有些评论一看就是广告,不过绝大部分是链接和英文。
对于垃圾评论我最近使用了一款插件,可以有效的屏蔽,一直没有遇到误判情况。名为”NoSpamNX“,大家可以在后台直接搜,安装启用就行,不用设置。
另外更简单的办法当然是不用插件了。大家都知道,插件多了会加重服务器负担。当然插件多少和网站打开速度没有关系。有关系的只有插件中的js文件。js多的话会影响的。所以大家都宁可不用插件。好了,言归正传。
一、WordPress自动拒绝垃圾评论
将以下代码粘贴到你的主题functions.php模板中。
任何包含在$ bad_comment_content数组内的字符,将会被自动拒绝留言。
function in_comment_post_like($string, $array) { foreach($array as $ref) { if(strstr($string, $ref)) { return true; } } return false; } function drop_bad_comments() { if (!emptyempty($_POST['comment'])) { $post_comment_content = $_POST['comment']; $lower_case_comment = strtolower($_POST['comment']); $bad_comment_content = array( ’viagra’, ’hydrocodone’, ’hair loss’, ’xanax’, ’tramadol’, ’russian girls’, ’russian brides’, ’lorazepam’, ’adderall’, ’dexadrine’, ’no prescription’, ’oxycontin’, ’without a prescription’, ’sex pics’, ’family incest’, ’online casinos’, ’online dating’, ’cialis’, ’best forex’, ’amoxicillin’ ); if (in_comment_post_like($lower_case_comment, $bad_comment_content)) { $comment_box_text = wordwrap(trim($post_comment_content), 80, “\n ”, true); $txtdrop = fopen(‘/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt’, ’a'); fwrite($txtdrop, “ ————–\n [COMMENT] = ” . $post_comment_content . “\n ————–\n”); fwrite($txtdrop, “ [SOURCE_IP] = ” . $_SERVER['REMOTE_ADDR'] . “ @ ” . date(“F j, Y, g:i a”) . “\n”); fwrite($txtdrop, “ [USERAGENT] = ” . $_SERVER['HTTP_USER_AGENT'] . “\n”); fwrite($txtdrop, “ [REFERER ] = ” . $_SERVER['HTTP_REFERER'] . “\n”); fwrite($txtdrop, “ [FILE_NAME] = ” . $_SERVER['SCRIPT_NAME'] . “ - [REQ_URI] = ” . $_SERVER['REQUEST_URI'] . “\n”); fwrite($txtdrop, ’————–**********——————’.“\n”); header(“HTTP/1.1 406 Not Acceptable”); header(“Status: 406 Not Acceptable”); header(“Connection: Close”); wp_die( __(‘bang bang.’) ); } } } add_action(‘init’, ’drop_bad_comments’);
以上代码可以自动屏蔽机器发的留言,但是不能屏蔽人为发的留言。
二、屏蔽指定内容的防垃圾代码
1、以下代码不允许评论中只有英文或者出现<a 随便 href=" 或者rel="nofollow"或者”http://“,如果你的主题没有使用ajax评论,那么请将下列代码添加到function.php中。
function lianyue_comment_post( $incoming_comment ) { $pattern = ’/[一-龥]/u’; $http = ’/[href="|rel="nofollow"|http:\/\/|<\/a>]/u’; // 禁止全英文评论 if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( ”您的评论中必须包含汉字!“ ); }elseif(preg_match($http, $incoming_comment['comment_content'])) { wp_die( ”万恶的发贴机!” ); } return( $incoming_comment ); } add_filter(‘preprocess_comment’, ’lianyue_comment_post’);
2、如果你的主题使用了ajax评论,那么请将下列代码添加到ajax文件合适位置。本主题(风云主题)请将下列代码添加到comments-ajax.php中最后一个个err( __(的下一行。
$pattern = ’/[一-龥]/u’; if (!preg_match($pattern,$comment_content) ) err( __(‘您的评论中必须包含汉字!’) ); $http = ’/[href="|rel="nofollow"|http:\/\/|<\/a>]/u’; if (preg_match($http,$comment_content) ) err( __(‘万恶的发贴机!’) );
以上代码中的汉字大家可以任意改动。
文章出自:https://www.zuifengyun.com/block-spam-non-review-summary.html 版权所有,除注明外皆为原创。文章仅为作者个人观点,不代表醉风云立场。
这么好的文章,怎么没评论呢?
我想把评论中的那个那输入网址去了怎么搞呀
貌似防不了日文啊, ❓
@Venwu 确实是,我现在也愁垃圾评论,实在没办法了。道高一尺魔高一丈 ❓
@huishao 因为做博客评论群发的几乎都是外贸站,不是英文就是日文!干脆 😛 那就启用Akismet插件直接处理算了!
我用了一个算术题 汉字检测 还是有 估计是人发的…
我用了一个算术题+汉字检测 还是有 估计是人发的…
@电脑爱好者 我也会有,不知道怎么来的
我觉得还是插件方便点啦。哈哈
我是直接用代杩的后台设置完成的,基本没有了,一部分的话手工运行!
这个代码高亮是怎么实现的???实验了几个插件,启用后网站就崩溃了,删除文件后才恢复
@swe 使用代码高亮转换器:CodeRenderUnmi下载地址http://pan.baidu.com/share/link?shareid=1648827241&uk=4162433433 复制用这个工具生成的 HTML 代码粘贴到你的文章编辑器(代码模式) 就行了
代码添加到comments-ajax.php中最后一个个err( __(的下一行。
err(__(‘您发表评论也太快了’));
$pattern = ‘/[一-龥]/u’;
if (!preg_match($pattern,$comment_content) )
err( __(‘您的评论中必须包含中文汉字!’) );
$http = ‘/[href=”|rel=”nofollow”|http:\/\/|]/u’;
if (preg_match($http,$comment_content) )
err( __(‘万恶的发贴机!’) );
}
}
是否是以上代码?没有错啊?为什么不行?
代码添加到comments-ajax.php中最后一个个err( __(的下一行。
err(__(‘您发表评论也太快了’));
$pattern = ‘/[一-龥]/u’;
if (!preg_match($pattern,$comment_content) )
err( __(‘您的评论中必须包含中文汉字!’) );
$http = ‘/[href=”|rel=”nofollow”|http:\/\/|]/u’;
if (preg_match($http,$comment_content) )
err( __(‘万恶的发贴机!’) );
}
}
是否是以上代码?没有错啊?为什么不行?
@翩翩飞舞 配合上面一、WordPress自动拒绝垃圾评论 那段很长的代码啊。放到functions.php里 你的英文评论是机器发的啊
为什么没有效果?还是能纯英文留言呀。。。这几天博客老是垃圾英文留言 烦死了!
这两段代码很不错 支持博主
从松松那边过来的,那篇文章写的不错
还是插件方便些哎。。
晕 还发不出留言了
@翩翩飞舞 为什么
1楼那句话,我也没看懂
我是觉得既然准备过滤评论了,再开个文件写日志,不是有点多此一举了。。。
@tiandi 嘛意思