WordPress教程

WordPress 实现文章只允许同一IP评论一次纯代码无插件

阿里云

WordPress 是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用 PHP 语言和 MySQL 数据库开发的,用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。

WordPress 有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用 HTML 代码、CSS、PHP 等相关知识。

也想出现在这里?联系我们
创客主机

在使用 wordpress 建站时,常常遇到被垃圾留言困扰,有些通过机器发垃圾留言,一发就是成百上千条,这个很烦人,因此,有些人干脆直接在 wordpress 网站上把留言评论功能给关闭了。

如果你的 wordpress 主题必须要使用留言评论,有一个办法可以规避这个问题,即实现 wordpress 一篇文章只鸡同一 IP 的人评论一次就可以。

将以下代码添加到 functions.php 中:

  1. // 一篇文章只允许同一IP评论一次
  2. //获取评论用户的ip,参考wp-includes/comment.php
  3. function wdp_getIP() {
  4.   $ip = $_SERVER['REMOTE_ADDR'];
  5.   $ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $ip );
  6.  
  7.   return $ip;
  8. }
  9. function wdp_only_one_comment( $commentdata ) {
  10.   global $wpdb;
  11.   $currentUser = wp_get_current_user();
  12.  
  13.   // 不限制管理员发表评论
  14.   if(empty($currentUser->roles) || !in_array('administrator', $currentUser->roles)) {
  15.     $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;");
  16.     if($bool)
  17.       wp_die('留言已提交,请勿重复留言。<a href="'.get_permalink($commentdata['comment_post_ID']).'">点此返回</a>');
  18.   }
  19.  
  20.   return $commentdata;
  21. }
  22. add_action( 'preprocess_comment' , 'wdp_only_one_comment', 20);

WordPress 实现文章只允许同一 IP 评论一次纯代码无插件

已有 175 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!