国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

WordPress中限制非管理員用戶在文章后只能評論一次

2024-09-07 00:48:06
字體:
來源:轉載
供稿:網友

之前有網友提出,在WordPress中有沒有辦法實現每篇文章只允許用戶評論一次?

暫不說這個需求有沒有用,畢竟WordPress就是給有各種需求的人用的。這個功能實現起來也比較簡單,只需每次用戶發表的評論進數據庫之前,從當前文章的所有評論中查找是否有相同的用戶名或郵箱已經發表過評論,如果有就跳到錯誤頁面即可。

實現代碼,放到當前主題的functions.php中即可(這里還增加了對IP的判斷,更保險):

  1. // 獲取評論用戶的ip,參考wp-includes/comment.php 
  2. function ludou_getIP() { 
  3.  $ip = $_SERVER['REMOTE_ADDR']; 
  4.  $ip = preg_replace( '/[^0-9a-fA-F:., ]/'''$ip ); 
  5.     
  6.  return $ip
  7.  
  8. function ludou_only_one_comment( $commentdata ) { 
  9.  global $wpdb
  10.  $currentUser = wp_get_current_user(); 
  11.    
  12.  // 不限制管理員發表評論 
  13.  if(emptyempty($currentUser->roles) || !in_array('administrator'$currentUser->roles)) { 
  14.   $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;"); 
  15.    
  16.   if($bool
  17.    wp_die('本站每篇文章只允許評論一次。<a href="'.get_permalink($commentdata['comment_post_ID']).'">點此返回</a>'); 
  18.  } 
  19.    
  20.  return $commentdata
  21. add_action( 'preprocess_comment' , 'ludou_only_one_comment', 20); 

這里沒有限制管理員的評論次數,那我們順帶著看一下判斷用戶是否為管理員的方法:

判斷指定id的用戶是不是管理員

該需求實現起來非常簡單,幾行代碼搞定,分享一下:

  1. function ludou_is_administrator($user_id) { 
  2.  $user = get_userdata($user_id); 
  3.  if(!emptyempty($user->roles) && in_array('administrator'$user->roles)) 
  4.   return 1; // 是管理員 
  5.  else 
  6.   return 0; // 非管理員 

判斷當前登錄用戶是不是管理員

如果是判斷當前登錄用戶是不是管理員,可以使用下面的函數:

  1. function ludou_is_administrator() { 
  2.  // wp_get_current_user函數僅限在主題的functions.php中使用 
  3.  $currentUser = wp_get_current_user(); 
  4.  
  5.  if(!emptyempty($currentUser->roles) && in_array('administrator'$currentUser->roles))  
  6.   return 1; // 是管理員 
  7.  else 
  8.   return 0; // 非管理員 
  9. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深泽县| 梁平县| 金坛市| 刚察县| 颍上县| 南阳市| 平陆县| 澜沧| 长葛市| 抚远县| 宜都市| 凤凰县| 鄂托克前旗| 东乡| 北川| 连南| 西安市| 祁阳县| 奎屯市| 四子王旗| 黔西| 游戏| 福安市| 忻州市| 岱山县| 武威市| 睢宁县| 洞头县| 宜丰县| 竹溪县| 东平县| 中方县| 太仓市| 孟连| 濮阳市| 密云县| 泰和县| 合阳县| 桐城市| 古丈县| 桐城市|