最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > WordPress > WordPress教程 >

WordPress后台评论如何限制用户的显示内容

时间:2014-01-25 22:31来源:未知 作者:外贸网站模板 点击:
在维护一个WordPress站点时,可能您邀请了很多投稿人、作者,来丰富您站点的内容;但您并不需要他们来维护后台一些日常事项,比如说评论的审批、垃圾评论的删除等动作。 而后台评论管理

在维护一个WordPress站点时,可能您邀请了很多投稿人、作者,来丰富您站点的内容;但您并不需要他们来维护后台一些日常事项,比如说评论的审批、垃圾评论的删除等动作。
而后台评论管理界面中,实际上不管登录用户是什么角色,都可以看到待审的评论,被标记为垃圾的评论。
在后台评论管理里默认的内容列表,用户不受限制

 

那该如何限制用户的显示内容呢?
 
按要求,除administrator外,都是注册用户,所以可以在当前皮肤的functions.php中做如下判断:
 
 
if ( ! is_super_admin() ){//非管理员
    //blablabla...
}
然后将待审、垃圾评论、已回收的评论信息不显示。这可以对get_comments函数提供的pre_get_comments钩子进行设置,比如:
 
 
add_action( 'pre_get_comments', 'dit_hide_some_comments', 999 );
function dit_hide_some_comments( $comments ){
        $comments->query_vars['status'] = 'approve'; //获取评论信息时只显示已审核批准的。
        return $comments;
}
这时如果注册用户查看回收站时,又要只能显示当前用户自己的。所以还要增加点判断
 
 
function dit_hide_some_comments( $comments ){
        $status = $comments->query_vars['status'];
        if ( 'trash' == $status ) {//当用户选择显示回收站时,将ID添加进筛选条件
            global $current_user;
            $comments->query_vars['user_id'] = $current_user->ID;
        }else {
            $comments->query_vars['status'] = 'approve'; //获取评论信息时只显示已审核批准的。
        }
        return $comments;
}
所以,最后放在functions.php中的代码片段整合如下:
 
 
if ( ! is_super_admin() ){//非管理员
    add_action( 'pre_get_comments', 'dit_hide_some_comments', 999 );
    function dit_hide_some_comments( $comments ){
            $status = $comments->query_vars['status'];
            if ( 'trash' == $status ) {//当用户选择显示回收站时,将ID添加进筛选条件
                global $current_user;
                $comments->query_vars['user_id'] = $current_user->ID;
            }else {
                $comments->query_vars['status'] = 'approve'; //获取评论信息时只显示已审核批准的。
            }
            return $comments;
    }
}
WordPress的插件机制,给后期的自定义提供了很大的舞台;这只是外贸网站模板花了一些时间查看源码后得出的答案,也可能另有更佳的解决方案;还望多多拍砖与交流。
(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容