WordPress中限度非治理员用户在文章后只能评论一次

之前有网友提出,在WordPress中有没有方法完成每篇文章只容许用户评论一次?

暂不说这个需要有没有用,毕竟WordPress就是给有各种需要的人用的。这个性能完成起来也比拟简略,只要每次用户宣布的评论进数据库之前,从以后文章的一切评论中查找能否有相反的用户名或邮箱曾经宣布过评论,假如有就跳到谬误页面即可。

完成代码,放到以后主题的functions.php中即可(这里还添加了对IP的判别,更保险):

// 获取评论用户的ip,参考wp-includes/comment.php
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);

这里没无限制治理员的评论次数,那咱们顺带着看一下判别用户能否为治理员的办法:

判别指定id的用户是不是治理员

该需要完成起来十分简略,几行代码搞定,分享一下:

function ludou_is_administrator($user_id) {
 $user = get_userdata($user_id);
 if(!empty($user->roles) && in_array('administrator', $user->roles))
  return 1; // 是治理员
 else
  return 0; // 非治理员
}

判别以后登录用户是不是治理员

假如是判别以后登录用户是不是治理员,能够应用上面的函数:

function ludou_is_administrator() {
 // wp_get_current_user函数仅限在主题的functions.php中应用
 $currentUser = wp_get_current_user();

 if(!empty($currentUser->roles) && in_array('administrator', $currentUser->roles)) 
  return 1; // 是治理员
 else
  return 0; // 非治理员
}

以上就是安达网络工作室关于《WordPress中限制非管理员用户在文章后只能评论一次》的一些看法。更多内容请查看本栏目更多内容!

本文相关话题: WordPress 评论 PHP PHP编程
版权声明:本文为 安达网络工作室 转载文章,如有侵权请联系我们及时删除。
相关文章
WordPress JQuery解决沙发头像

我想这对沙发同窗不太偏心吧。昨天在看yinheli同窗的《鼠标悬浮完成显示留言内容》一文(倡议看看,好文章)...

如何在wordpress上添加文件上传的大小限度(多种完成办法)

本文只限Apache配置主机的应用办法,添加WordPress文件上传大小限度:经过配置php.ini的upload_max_filesiz...

在WordPress中应用PHP脚原本判别访客来自什么国度

区分访客国度有什么用&#63; 这里是几个我利用该性能的例子. 1.区分网站性能 这个博客有翻译文章的性能, 这是...

WordPress用户登录框明码的暗藏与局部显示技巧

让WordPress登录页的明码框显示最初一个输出的字符 在通常状况下,网页的设计者们会将明码输出框中的一切字...

详解WordPress中给链接增加查问字符串的办法

查问字符串指的是链接中后边的问号后的查问语句,格局为 key=value,多个查问语句用 & 符号离开。add_query...

WordPress中缩略图的应用以及相干技巧

在博客上用到缩略图的机会很多, 它们呈现在文章列表页面, 文章下方的相干文章, 分类页面的类目图片, 甚至有...

需求提交

客服服务

亿鸽在线客服系统