如何限制非管理員用戶在一篇文章后只能評(píng)論一次
本文主要介紹如何限制非管理員用戶在文章后評(píng)論一次wordpress建站,希望能解決大家遇到的相關(guān)問題,一起來看看吧看看這篇“文章后如何限制非管理員用戶”只能評(píng)論一次”的文章。
先不說這個(gè)需求有沒有用,畢竟是針對(duì)各種需求的人。這個(gè)功能實(shí)現(xiàn)起來也比較簡單。就在用戶發(fā)表的每條評(píng)論進(jìn)入數(shù)據(jù)庫之前,需要檢查是否同一個(gè)用戶名或電子郵件地址已經(jīng)從當(dāng)前文章的所有評(píng)論中發(fā)表了評(píng)論,如果是,則跳轉(zhuǎn)到錯(cuò)誤頁面。 .
實(shí)現(xiàn)代碼可以放在當(dāng)前主題的.php中(這里也加上IP判斷wordpress網(wǎng)站建設(shè),更安全):
//?獲取評(píng)論用戶的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();
?
?//?不限制管理員發(fā)表評(píng)論

?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('本站每篇文章只允許評(píng)論一次。點(diǎn)此返回');
?}
?
?return?$commentdata;

}
add_action(?'preprocess_comment'?,?'ludou_only_one_comment',?20);
管理員發(fā)表的評(píng)論數(shù)沒有限制wordpress管理員密碼,下面我們來看看判斷用戶是否為管理員的方法:
判斷指定id的用戶是否為管理員
這個(gè)需求實(shí)現(xiàn)起來很簡單,幾行代碼,請(qǐng)分享:
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;?//?非管理員
}
判斷當(dāng)前登錄用戶是否為管理員
如果要判斷當(dāng)前登錄的用戶是否為管理員,可以使用如下函數(shù):
function?ludou_is_administrator()?{
?//?wp_get_current_user函數(shù)僅限在主題的functions.php中使用

?$currentUser?=?wp_get_current_user();
?if(!empty($currentUser->roles)?&&?in_array('administrator',?$currentUser->roles))?
??return?1;?//?是管理員
?else
??return?0;?//?非管理員
}
這里介紹了“如何限制非管理員用戶在一篇文章后只能評(píng)論一次”。希望大家多多支持編程寶庫。
下一節(jié):隱藏和部分顯示用戶登錄框密碼、編程技術(shù)與編程
本文主要介紹“隱藏和部分顯示用戶登錄框密碼的方法”wordpress管理員密碼,希望能解決大家遇到的問題。我們來看看這篇文章《隱藏和部分顯示用戶登錄框密碼的方法》。 ...
文章來自互聯(lián)網(wǎng),侵權(quán)請(qǐng)聯(lián)系刪除,文章闡述觀點(diǎn)來自文章出處,并不代表本站觀點(diǎn)。
www.bjcthy.com