wordpress一旦开启文章评论时,垃圾评论就会多。特别是一些英文评论,很多都是通过软件机器自动回复发布,而IP地址都一样。而防止垃圾评论方法也很多。最方便的就是在后台讨论设置开启用户必须注册并登录才可以发表评论、评论必须经过人工批准。还有就是给评论添加验证码才能回复的功能。
也可能通过WordPress防垃圾评论插件:如Akismet(这个要激活才能有效,可能通过后台搜索插件安装)、myQaptcha插件(用于滑动解锁后才能发表评论,下载地址https://wordpress.org/plugins/myqaptcha/)。如果不喜欢用插件或者只需要个简单的算术验证码,可以直接在wordpress主题里使用以下介绍的代码实现。
以下是非插件实现wordpress评论数学算术验证码的方法。将以下代码添加到主题的functions.php文件
//wordpress评论添加验证码 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找到相关要显示的位置添加以下验证码调用代码
<?php spam_protection_math();?>
具体添加可能主题不同,添加位置也不同,多数在submit,value="提交留言"、value="提交评论"、添加。
评论