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

2022-12-19

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);
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

免责声明 1、本站所发布的全部内容源于互联网搬运,(包括源代码、软件、学习资料等)本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的23个小时之内,从您的电脑或手机中彻底删除上述内容。
2、访问本站的用户必须明白,本站对所提供下载的软件和程序代码不拥有任何权利,其版权归该软件和程序代码的合法拥有者所有,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如本站不慎侵犯您的版权请联系我们,我们将及时处理,并撤下相关内容!敬请谅解! 侵删请致信E-mail:messi0808@qq.com
3、如下载的压缩包需要解压密码,若无特殊说明,那么文件的解压密码则为www.xmy7.com
4、如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

小蚂蚁资源网 cms教程 WordPress 实现文章只允许同一IP评论一次纯代码无插件 https://www.xmy7.com/zh/cms/25855.html

相关文章