提醒:本文最后更新于 4178 天前,文中所描述的信息可能已发生改变,请仔细核实。
Akismet的防垃圾评论能力确实是,垃圾评论很多,但是总是能从里边发现非垃圾评论,被划分成垃圾评论,几百条垃圾评论,找出这几条,然后批准,比较耗精力。
Qaptcha滑动解锁无论在美观上,实用方面,都很不错,但是过于依赖jquery库,而且需要的库文件还不少。同时加载超过1个(有2个及2个以上),滑动解锁就失效了,无法拖动,谁都不能回复,除了管理员。很难就是去说,你以后用一个新的插件,没带这个库,一带jquery,滑动解锁必定失效。。。十分坑爹。
因为对jquery的不熟悉,还有上面那个原因,实在是不想去动了,所以我放弃了Qaptcha,虽然有点可惜,但是事情追求不了完美,如要追求完美,还有很长的路要走!
所以我自己写了个非常简单的函数,通过判定评论者是否使复选框选中来作为是不是人的判断,来判定。
因为复选框一般人看到了自然会去选中它,不是人嘛。。。自然不知道。。。
希望我不会太片面了。。所以需要时间来证明是否有效。
现在把源码扔上来,请高手们指教下,不胜感激。
现在已经关闭Akismet了。
兼容Ajax comments。
源码如下(添加在主题的functions.php里面,兼容性基本上100%):
function access_submit($comment) {
if (!is_user_logged_in()) {
if(isset($_POST['access_submit'])) {
return($comment);
} else {
if (isset($_POST['isajaxtype']) && $_POST['isajaxtype'] > -1) {
die("请先同意声明");
} else {
if(function_exists('err')){
err("请先同意声明");
} else {
wp_die("请先同意声明");
}
}
}
} else {
return($comment);
}
}
add_action('preprocess_comment', 'access_submit');
function add_checkbox() {
if (!is_user_logged_in()) {
$content.= '<input type="checkbox" name="access_submit" id="access_submit" value="access_submit" style="width: 15px;" /><label for="access_submit" style="margin-left:5px;">同意声明并回复楼主 </label>';
$content.= '<span style="font-weight:bold;text-shadow:0 1px 0 #ddd;"> 声明:</span> 本博采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权';
echo $content;
}
}
add_action('comment_form', 'add_checkbox');
if (!is_user_logged_in()) {
if(isset($_POST['access_submit'])) {
return($comment);
} else {
if (isset($_POST['isajaxtype']) && $_POST['isajaxtype'] > -1) {
die("请先同意声明");
} else {
if(function_exists('err')){
err("请先同意声明");
} else {
wp_die("请先同意声明");
}
}
}
} else {
return($comment);
}
}
add_action('preprocess_comment', 'access_submit');
function add_checkbox() {
if (!is_user_logged_in()) {
$content.= '<input type="checkbox" name="access_submit" id="access_submit" value="access_submit" style="width: 15px;" /><label for="access_submit" style="margin-left:5px;">同意声明并回复楼主 </label>';
$content.= '<span style="font-weight:bold;text-shadow:0 1px 0 #ddd;"> 声明:</span> 本博采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权';
echo $content;
}
}
add_action('comment_form', 'add_checkbox');
实际效果图:
转载请注明转自:kn007的个人博客的《自己写了个防机器人评论的,请大家帮忙发现BUG》