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

WordPress评论白名单不用审核直接显示应该怎么实现?以前一直用的评论黑名单来限制打广告的人,有黑名单就有…

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文件,增加如下代码:

//评论白名单/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): 评论被转移至”垃圾箱”
类别:WordPress教程

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册