[导读]:WordPress 的垃圾评论是个比较头疼的事情,本站一开始就开启了屏蔽全英文的评论内容,后来发现全英文是不可能出现了,但是发现却出现了全日文,晕死!然后继续屏蔽全日文...
WordPress 的垃圾评论是个比较头疼的事情,本站一开始就开启了屏蔽全英文的评论内容,后来发现全英文是不可能出现了,但是发现却出现了全日文,晕死!然后继续屏蔽全日文,效果好了不少!今天,继续增强垃圾评论防御能力,添加人机验证码,用的是比较简单的数学算术,不需要太复杂,能防机器就行了。虽然有相关的插件,但不建议使用,因为代码本身就很简单。
将下面的代码添加到主题的 functions.php 文件:
function spam_protection_math(){ 	$num1=rand(0,9); 	$num2=rand(0,9); 	echo "<label for=\"math\">人机验证:<i>$num1 + $num2 = ?</i> </label>\n "; 	echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\">\n"; 	echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n"; 	echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">"; } function spam_protection_pre($commentdata){ 	$sum=$_POST['sum']; 	switch($sum){ 		case $_POST['num1']+$_POST['num2']: 		break; 		case null: 		wp_die('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>','评论失败'); 		break; 		default: 		wp_die('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试。','评论失败'); 	} 	return $commentdata; } if($comment_data['comment_type']==''){ 	add_filter('preprocess_comment','spam_protection_pre'); }
然后在主题的评论文件相关位置添加以下代码,一般在 comments.php 文件中,是不是很简单?
本文来自投稿,不代表微盟圈立场,如若转载,请注明出处:https://www.vm7.com/a/jc/10961.html