WordPress Version: 4.1
/**
* Returns the classes for the comment div as an array.
*
* @since 2.7.0
*
* @param string|array $class Optional. One or more classes to add to the class list. Default empty.
* @param int $comment_id Comment ID. Default current comment.
* @param int|WP_Post $post_id Post ID or WP_Post object. Default current post.
* @return array An array of classes.
*/
function get_comment_class($class = '', $comment_id = null, $post_id = null)
{
global $comment_alt, $comment_depth, $comment_thread_alt;
$comment = get_comment($comment_id);
$classes = array();
// Get the comment type (comment, trackback),
$classes[] = empty($comment->comment_type) ? 'comment' : $comment->comment_type;
// If the comment author has an id (registered), then print the log in name
if ($comment->user_id > 0 && $user = get_userdata($comment->user_id)) {
// For all registered users, 'byuser'
$classes[] = 'byuser';
$classes[] = 'comment-author-' . sanitize_html_class($user->user_nicename, $comment->user_id);
// For comment authors who are the author of the post
if ($post = get_post($post_id)) {
if ($comment->user_id === $post->post_author) {
$classes[] = 'bypostauthor';
}
}
}
if (empty($comment_alt)) {
$comment_alt = 0;
}
if (empty($comment_depth)) {
$comment_depth = 1;
}
if (empty($comment_thread_alt)) {
$comment_thread_alt = 0;
}
if ($comment_alt % 2) {
$classes[] = 'odd';
$classes[] = 'alt';
} else {
$classes[] = 'even';
}
$comment_alt++;
// Alt for top-level comments
if (1 == $comment_depth) {
if ($comment_thread_alt % 2) {
$classes[] = 'thread-odd';
$classes[] = 'thread-alt';
} else {
$classes[] = 'thread-even';
}
$comment_thread_alt++;
}
$classes[] = "depth-{$comment_depth}";
if (!empty($class)) {
if (!is_array($class)) {
$class = preg_split('#\s+#', $class);
}
$classes = array_merge($classes, $class);
}
$classes = array_map('esc_attr', $classes);
/**
* Filter the returned CSS classes for the current comment.
*
* @since 2.7.0
*
* @param array $classes An array of comment classes.
* @param string $class A comma-separated list of additional classes added to the list.
* @param int $comment_id The comment id.
* @param object $comment The comment
* @param int|WP_Post $post_id The post ID or WP_Post object.
*/
return apply_filters('comment_class', $classes, $class, $comment_id, $comment, $post_id);
}