首页 > 电脑科技 > 屏蔽/防止垃圾评论代码,强烈推荐
2014
01-03

屏蔽/防止垃圾评论代码,强烈推荐

这几天,博客评论出现了一些小问题。先是Derek Yang反馈我的博客无法评论,后来随望淡思也说需要重复提交评论才能正常显示。我也挺纳闷的,这么几天只有流量却不见评论呢。简单测试了一下,果然是评论出现了问题:即使是我自己的账号登陆,提交的评论也无法正常显示。一查,直接是进入垃圾评论中去了。想必之前诸位网友的评论也直接被归入到垃圾评论中去了。屏蔽垃圾评论采用的是Akismet,估计是和加速乐或某种插件有些冲突的缘故。

加速乐是需要保留用的,Akismet只好停用了。但是如何屏蔽每天几百个的垃圾评论呢?之前采用的是水果验证,效果很好,但是用户体验不好,遂放弃。看到网上有说直接修改wp-comments-post.php文件名,但是2012主题comments.php文件中竟然没有wp-comments-post.php,只好作罢。使用插件的话,很多种方法,但是尽量还是不用插件的好。

于是便找到了这样一段代码(最后蓝字部分)来解决问题。经过多日的测试与反馈,这个代码相当给力,是我用过的最佳屏蔽垃圾方式,强烈推荐!!!使用时,不需要做任何修改,只需要把这段代码放到主题目录下functions.php文件中的最后即可!

附:屏蔽垃圾评论代码:

class anti_spam {
		function anti_spam() {
		if ( !current_user_can('level_0') ) {
			add_action('template_redirect', array($this, 'w_tb'), 1);
			add_action('init', array($this, 'gate'), 1);
			add_action('preprocess_comment', array($this, 'sink'), 1);
		}
	}

	function w_tb() {
		if ( is_singular() ) {
			ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=(["'])comment(["'])(.+)/textarea>#",
			"textarea$1name=$2wall$3$4/textarea><textarea name="comment" cols="50" rows="4" style="display:none"></textarea>",$input);') );
		}
	}

	function gate() {
		( !empty($_POST['wall']) && empty($_POST['comment']) ) ? $_POST['comment'] = $_POST['wall'] : $_POST['spam_confirmed'] = 1;
	}

	function sink( $comment ) {
		if ( !empty($_POST['spam_confirmed']) ) {
			die();
			}
		}
		return $comment;
	}
}
new anti_spam();
屏蔽/防止垃圾评论代码,强烈推荐 - 半省堂 - 1
最后编辑:
作者:马光
这个作者貌似有点懒,什么都没有留下。

屏蔽/防止垃圾评论代码,强烈推荐》有 8 条评论

          留下一个回复

          你的email不会被公开。