WordPress Version: 3.2
/**
* Show Comments section.
*
* @since 3.8.0
*
* @param int $total_items Optional. Number of comments to query. Default 5.
* @return bool False if no comments were found. True otherwise.
*/
function wp_dashboard_recent_comments($total_items = 5)
{
// Select all comment types and filter out spam later for better query performance.
$comments = array();
$comments_query = array('number' => $total_items * 5, 'offset' => 0);
if (!current_user_can('edit_posts')) {
$comments_query['status'] = 'approve';
}
while (count($comments) < $total_items && $possible = get_comments($comments_query)) {
if (!is_array($possible)) {
break;
}
foreach ($possible as $comment) {
if (!current_user_can('read_post', $comment->comment_post_ID)) {
continue;
}
$comments[] = $comment;
if (count($comments) === $total_items) {
break 2;
}
}
$comments_query['offset'] += $comments_query['number'];
$comments_query['number'] = $total_items * 10;
}
if ($comments) {
echo '<div id="latest-comments" class="activity-block table-view-list">';
echo '<h3>' . __('Recent Comments') . '</h3>';
echo '<ul id="the-comment-list" data-wp-lists="list:comment">';
foreach ($comments as $comment) {
$comment_post = get_post($comment->comment_post_ID);
if (current_user_can('edit_post', $comment->comment_post_ID) || empty($comment_post->post_password) && current_user_can('read_post', $comment->comment_post_ID)) {
_wp_dashboard_recent_comments_row($comment);
}
}
echo '</ul>';
if (current_user_can('edit_posts')) {
echo '<h3 class="screen-reader-text">' . __('View more comments') . '</h3>';
_get_list_table('WP_Comments_List_Table')->views();
}
wp_comment_reply(-1, false, 'dashboard', false);
wp_comment_trashnotice();
echo '</div>';
} else {
return false;
}
return true;
}