The comment_class WordPress PHP filter modifies the returned CSS classes for the current comment.
Usage
add_filter('comment_class', 'your_function_name', 10, 5); function your_function_name($classes, $css_class, $comment_id, $comment, $post) { // your custom code here return $classes; }
Parameters
$classes
(string[]): An array of comment classes.$css_class
(string[]): An array of additional classes added to the list.$comment_id
(string): The comment ID as a numeric string.$comment
(WP_Comment): The comment object.$post
(int|WP_Post): The post ID or WP_Post object.
More information
See WordPress Developer Resources: comment_class
Examples
Add a custom class to comment
Add a custom class ‘custom-comment’ to every comment.
add_filter('comment_class', 'add_custom_comment_class', 10, 5); function add_custom_comment_class($classes, $css_class, $comment_id, $comment, $post) { $classes[] = 'custom-comment'; return $classes; }
Highlight author’s comments
Add a ‘comment-author’ class to comments made by the post author.
add_filter('comment_class', 'highlight_author_comments', 10, 5); function highlight_author_comments($classes, $css_class, $comment_id, $comment, $post) { $post = get_post($post); if ($comment->user_id === $post->post_author) { $classes[] = 'comment-author'; } return $classes; }
Add odd and even classes
Add ‘odd’ and ‘even’ classes to alternate comments for styling purposes.
add_filter('comment_class', 'add_odd_even_classes', 10, 5); function add_odd_even_classes($classes, $css_class, $comment_id, $comment, $post) { global $comment_alt; $comment_alt = (isset($comment_alt) ? $comment_alt : 0) + 1; $classes[] = ($comment_alt % 2) ? 'odd' : 'even'; return $classes; }
Add class based on comment depth
Add a class ‘depth-X’ where X is the depth of the comment.
add_filter('comment_class', 'add_comment_depth_class', 10, 5); function add_comment_depth_class($classes, $css_class, $comment_id, $comment, $post) { $depth = intval($comment->comment_parent) > 0 ? get_comment_depth($comment_id) : 1; $classes[] = 'depth-' . $depth; return $classes; }
Remove specific class from comments
Remove the ‘comment’ class from all comments.
add_filter('comment_class', 'remove_comment_class', 10, 5); function remove_comment_class($classes, $css_class, $comment_id, $comment, $post) { $classes = array_diff($classes, array('comment')); return $classes; }