WordPress代码让用户只能评论一次
一些WordPress站长可能会遇到网站被恶意刷评论情况,里面充斥着广告、不良信息。
我们可以让用户一篇文章只能回复一次(适用于资源下载、不需要频繁在留言区交流的网站)
我们可以让用户一篇文章只能回复一次(适用于资源下载、不需要频繁在留言区交流的网站)
设置方法
设置方法很简单,只需在你主题functions.php文件加入下面代码即可。
// 获取评论用户的ip
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);
0条评论