让代码更简单

当前位置:代码狗 > WordPress > WP建站 > 正文

WordPress代码实现评论白名单功能

重要:本文最后更新于2020-04-21 08:22:36,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

WordPress评论白名单不用审核直接显示应该怎么实现?以前一直用的评论黑名单来限制打广告的人,有黑名单就有白名单。由于wordpress后台只提供了评论黑名单设置项,所以白名单的实现要比黑名单复杂一点,但也难不到哪里去,下面我以DUX主题为例举个例子,以下代码当然也适用于DMD主题。

增加后台设置项

为了方便用户操作,后台设置项很有必要,不然想要允许一名用户自由评论,还得改代码,十分麻烦。

找到DUX或者DMD主题根目录中的options.php文件,这个是后台设置框架的配置文件,在里面合适的位置增加如下代码。

$options[] = array(
'name' => __('评论白名单', 'haoui'),
'id' => 'allowcomment',
'std' => '1016134519@qq.com',
'desc' => __('评论白名单,填写允许评论的邮箱,一行一个(不要留空行)', 'haoui'),
'type' => 'textarea');

注意:是合适位置,这个位置应该很好找。

保存后刷新后台主题设置页面,可以看到多了一项评论白名单。

WordPress代码实现评论白名单不用审核

WordPress代码实现评论白名单不用审核

挂载处理函数

上面仅仅是保存了白名单内容,要修改评论数据,我们需要利用pre_comment_approved过滤器,打开主题目录下的functions.php文件,增加如下代码:

//评论白名单https://www.daimadog.com/6206.html
function dmd_allow_comment_email( $approved , $commentdata ) {
if(_hui('allowcomment')){
$list=explode(PHP_EOL,_hui('allowcomment'));
$isContains = in_array($commentdata['comment_author_email'],$list);
if($isContains){
return 1;
}else{
return $approved;
}
}
}
add_filter( 'pre_comment_approved', 'dmd_allow_comment_email', 99, 2 );

搞定,保存后测试看看吧。

以上代码仅将白名单用户的评论设置为通过状态,其它用户的状态扔延用wordpress后台设置,如果你想让其它所有人都不通过,可以将上面的$approved改为其它值,具体内容如下:

  • 0 (int): 评论状态为”Pending” (待审核)
  • 1 (int) : 评论状态为”Approved” (通过审核)
  • ‘spam’ (string): 评论被标记为”垃圾评论”
  • ‘trash’ (string): 评论被转移至”垃圾箱”

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏

评论 3

  1. #2

    其实我想要的是批量黑名单,就好比缙哥那个盘他!

    万花网6个月前 (05-07)回复
    • 黑名单已经发过了,可以搜一下。

      代码狗6个月前 (05-07)回复
  2. #1

    狗哥牛批,狗哥万岁……

    缙哥哥6个月前 (04-21)回复
×

请作者吃根烤肠!

支付宝