| 
       
	在维护一个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的插件机制,给后期的自定义提供了很大的舞台;这只是外贸网站模板花了一些时间查看源码后得出的答案,也可能另有更佳的解决方案;还望多多拍砖与交流。 
      
      (责任编辑:最模板) | 
    

