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;
}
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查询以检索该ID在foreach循环中,调用get\\u comment,它将返回一个comment对象。有关示例,请参见here
从该注释对象中,获取注释者的用户ID,并将其分配给变量call user\\u can,传递步骤3中获得的用户ID。您需要检查用户是否可以更改选项,只有管理员才能更改选项,因此我们将“manage\\u options”作为第二个参数传入,如果user\\u可以返回false,请列出注释如果user\\u可以返回true,请跳到下一条注释,这是管理员注释