今天在浏览露兜博客的时候看到在WordPress版块有这样的功能,限制每个用户在每篇文章只能评论一次,是根据检测当前这篇文章用户名和邮箱是不是已经有过记录来判断的。不过这样的方法可能对于少部分用户会有用途,对于大部分用户博客、网站是用途不大的,比如网友留言提问,你回答之后,用户再来询问难道不允许?
这里国外主机优惠也把方法记录过来,如果有用到的朋友可以参考,建议还是最好不要使用。
function ludou_getIP() {
$ip = $_SERVER[\’REMOTE_ADDR\’];
$ip = preg_replace( \’/[^0-9a-fA-F:., ]/\’, \’\’, $ip );return $ip;
}function ludou_only_one_comment( $commentdata ) {
global $wpdb;
$currentUser = wp_get_current_user();// 不限制管理员发表评论
if(empty($currentUser->roles) || !in_array(\’administrator\’, $currentUser->roles)) {
$bool = $wpdb->get_var(\”SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = \”.$commentdata[\’comment_post_ID\’].\” AND (comment_author = \’\”.$commentdata[\’comment_author\’].\”\’ OR comment_author_email = \’\”.$commentdata[\’comment_author_email\’].\”\’ OR comment_author_IP = \’\”.ludou_getIP().\”\’) LIMIT 0, 1;\”);if($bool)
wp_die(\’本站每篇文章只允许评论一次。<a href=\”\’.get_permalink($commentdata[\’comment_post_ID\’]).\’\”>点此返回</a>\’);
}return $commentdata;
}
add_action( \’preprocess_comment\’ , \’ludou_only_one_comment\’, 20);
这个脚本参考来自:https://www.ludou.org/wordpress-only-allow-comment-once-per-post.html
使用方法:
将脚本添加到当前主题的Functions.php文件中即可生效。