wordpress简单实现评论白名单功能

2018年3月10日22:18:18 1 73 views

最早给网站写评论白名单功能还得追溯到几年前,那时候懒得管理自留地,便索性写了一个评论白名单功能。后来在写leo主题的时候,我顺手将这个功能给移植进来了,只不过功能代码被我简化了很多,甚至可以说是‘怎么偷懒就怎么简化代码,只要能实现该功能就行’。

关于这个让人头疼让人吐槽、也让部分博主喜欢的评论白名单功能,看似很铁面无私,但其实它就几行代码便可以搞定。

一、白名单列表

在functions扔进以下代码:

  1. /*
  2. *定义白名单
  3. *龙砚庭https://loomob.com
  4. */
  5. function lyt_white_list_check($email) {//用邮箱作为判断依据
  6.     $white_list = array_filter( explode( ',', trim(get_option('lyt_white_list'), ',' ) ) );//请根据自用主题的后台选项修改get_option
  7.     if ( !empty($white_list) && in_array($email, $white_list) )
  8.       return true;
  9.     return false;
  10.   }

这里有两个地方需要注意,一是$email,二是get_option。请根据自用主题的实际情况来修改,这里不做细表。

二、执行机制

同样还是扔到functions。

  1. /*
  2. *白名单内指定url可评论,且指定某页面与文章过滤此规则。
  3. *龙砚庭https://loomob.com
  4. */
  5. function white_list_spam($comment) {
  6.     $postsid = get_option('lyt_whitelist_id'); //自定义过滤的页面、文章ID
  7.     define('ALLOW_PAGES', ''.$postsid.'');
  8.     $post_ID = $comment["comment_post_ID"];
  9.     $allow_posts = ALLOW_PAGES ? explode(',', ALLOW_PAGES) : array();
  10.     if(!in_array($post_ID,$allow_posts)){
  11.     if (!lyt_white_list_check($comment['comment_author_email'])) {//通过邮箱判断
  12.         err(__('对不起,您的网站不在龙砚庭博客的评论白名单之内,请邮件联系站长'));//err或者wp-die
  13.     }
  14.     }
  15.         return $comment;
  16. }

三、后台选项函数

为了可视化,便于后台直接操作,我们还需要给后台主题选项写一个白名单列表函数,以及过滤页面、文章ID的函数

lyt_white_list

lyt_whitelist_id

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • X隐者 X隐者 0

      正需要这个,大部分都要审核挺麻烦的