WordPress 实现文章只允许同一IP评论一次纯代码无插件
WordPress 是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用 PHP 语言和 MySQL 数据库开发的,用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。
WordPress 有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用 HTML 代码、CSS、PHP 等相关知识。
在使用 wordpress 建站时,常常遇到被垃圾留言困扰,有些通过机器发垃圾留言,一发就是成百上千条,这个很烦人,因此,有些人干脆直接在 wordpress 网站上把留言评论功能给关闭了。
如果你的 wordpress 主题必须要使用留言评论,有一个办法可以规避这个问题,即实现 wordpress 一篇文章只鸡同一 IP 的人评论一次就可以。
将以下代码添加到 functions.php 中:
-
// 一篇文章只允许同一IP评论一次
-
//获取评论用户的ip,参考wp-includes/comment.php
-
function wdp_getIP() {
-
$ip = $_SERVER['REMOTE_ADDR'];
-
$ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $ip );
-
return $ip;
-
}
-
function wdp_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 = '".wdp_getIP()."') LIMIT 0, 1;");
-
if($bool)
-
wp_die('留言已提交,请勿重复留言。<a href="'.get_permalink($commentdata['comment_post_ID']).'">点此返回</a>');
-
}
-
return $commentdata;
-
}
-
add_action( 'preprocess_comment' , 'wdp_only_one_comment', 20);
本站资源均来源于网络或网友投稿,部分资源未经测试,难免存在BUG,所有资源只限于学习研究,不得商用。如使用本站下载的资源造成任何损失或发生侵权行为,均与本站无关。如不接受本声明请勿下载!本站资源如有侵权,请联系QQ:497149677核实后立即删除!
最客资源网 » WordPress 实现文章只允许同一IP评论一次纯代码无插件
最客资源网 » WordPress 实现文章只允许同一IP评论一次纯代码无插件