将管理员从顶级评论者列表中排除

时间:2011-11-16 作者:Tara

Possible Duplicate:
Top Commenters: exclude admin

回来的时候,我在这里发现了这个黑客来显示顶级评论。它工作得很好。但是我想从评论列表中排除管理员。所以请帮助修改代码以排除管理员谢谢。

代码为:

function top_comment_authors($amount = 5) { 

    global $wpdb;  
    $results = $wpdb->get_results(\' 
        SELECT 
            COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url 
        FROM 
            \'.$wpdb->comments.\' 
        WHERE 
            comment_author_email != "" AND comment_type = "" AND comment_approved = 1 
        GROUP BY 
            comment_author_email 
        ORDER BY 
            comments_count DESC, comment_author ASC 
        LIMIT \'.$amount  
    );  
$output = "<ul>"; 
    foreach($results as $result){ 
        $output .= "<li>".(($result->comment_author_url) ? "<a href=\'".$result->comment_author_url."\'>" : "").$result->comment_author.(($result->comment_author_url) ? "</a>" : "")." (".$result->comments_count.")</li>"; 


    } 
    $output .= "</ul>";  
    echo $output;  
} 

1 个回复
SO网友:Tom J Nowell

假设comment\\u author是用户ID,请尝试:

if(user_can($result->comment_author,\'manage_options\')){
    $output .= "<li>".(($result->comment_author_url) ? "<a href=\'".$result->comment_author_url."\'>" : "").$result->comment_author.(($result->comment_author_url) ? "</a>" : "")." (".$result->comments_count.")</li>";
}
如果没有,可以使用get_comment, 并选择comment_ID 在SQL语句中。然后,您可以使用返回的对象获取注释作者的用户ID,并检查他们是否是使用user_can 从上方执行功能。

http://codex.wordpress.org/Function_Reference/get_comment

编辑:

您需要注释ID。请修改SQL查询以检索该IDhere

  • 从该注释对象中,获取注释者的用户ID,并将其分配给变量call user\\u can,传递步骤3中获得的用户ID。您需要检查用户是否可以更改选项,只有管理员才能更改选项,因此我们将“manage\\u options”作为第二个参数传入,如果user\\u可以返回false,请列出注释如果user\\u可以返回true,请跳到下一条注释,这是管理员注释

  • 结束

    相关推荐

    Order Admin sub-menu items?

    我正在使用向CPT管理菜单添加项目add_submenu_page 这很好,但它们被添加到CPT选项后的子菜单底部。我希望能够将它们放在最上面,但我想这个问题也可以应用于订购所有基于管理员的子菜单项。我所尝试的(不起作用,我尝试了几种变体),function custom_menu_order($menu_ord) { if (!$menu_ord) return true; return array( \'edi