垃圾评论是非常招人恨的事儿。曾经一段时间,为了找一款反垃圾评论插件或一段及其简单的验证码代码,奋战到深夜,以至连续好几天。对于我这种白菜,自己是不懂写代码的,但是我会用,经过不断的测试,不管代码有漏洞与否,有效果就行。当然网上的高手多不胜数,只是照顾我们这种白菜却少之又少。
曾经好长一段时间,我一直用那个滑动解锁式验证码,好看又好用,不过有些复杂,而且代码老不更新,貌似都不支持最新版JQ了。于是后来就放弃了。其实我就是想找款简单的数字验证码,随机的,应付非人评论足够了。一直不明白为什么有那么多乱七八糟乱码式的评论,像病毒一样。然后人为的垃圾评论,也不可能连续来上几十条吧,也太累了。不过对于七毛党,五毛党,就很难说了。
不废话,演示见本站。
将下面代码甩进functions.php即可:
// ADD: Anti-spam Code function olo_antispam(){ if(!is_user_logged_in()){ //$pcodes = substr(md5(mt_rand(0,99999)),0,4); //验证码为英文+数字组合 $pcodes = substr(mt_rand(0,99999),0,4); //验证码为数字组合 $str = ''; $str .= ''; $str .= ''; $str .= ''.$pcodes.''; $str .= ''; $str .= '
'; echo $str; } } add_action('comment_form', 'olo_antispam', 1, 1); function yanzhengma(){ if ( !is_user_logged_in() ) { $pcodes = trim($_POST['pcodes']); $subpcodes = trim($_POST['subpcodes']); if((($pcodes)!=$subpcodes) || empty($subpcodes)){ wp_die( __('错误提示:请输入正确的验证码。') ); } } } add_filter('pre_comment_on_post', 'yanzhengma');
这个代码有人应该觉得很熟悉,网上复制粘贴的病毒式的扩散了很多。都说直接用yanzhengma()调用即可,可我测试了N遍,就是不行。后来我找到了答案,是在一个博客上,不记得是谁的了,做出了类似的例子,我修改了一下。这个是自动插入评论下方的,如果手动调用的话,可以将add_action('comment_form', 'olo_antispam', 1, 1);这段代码注释,并在需要的位置调用olo_antispam()即可。
好了,有问题或者有更好的建议,欢迎交流!
让人输入验证码很不好啊
11年前 · 潍坊 · Unknown Unknown
@Louis Han 我相信好的验证码功能既可以减少垃圾评论,又可以提高用户体验满意度。
11年前 · 张家口 · Unknown Unknown
不错不错,呵呵
11年前 · 嘉兴 · Unknown Unknown