get_comment_class() – Returns the classes for the comment div as an array.

You appear to be a bot. Output may be restricted

Description

Returns the classes for the comment div as an array.

Usage

$string[] = get_comment_class( $css_class, $comment_id, $post_id );

Parameters

$css_class
( string|string[] ) optional – Optional. One or more classes to add to the class list. Default empty.
$comment_id
( int|WP_Comment ) optional – Comment ID or WP_Comment object. Default current comment.
$post_id
( int|WP_Post ) optional – Post ID or WP_Post object. Default current post.

Returns

string[] An array of classes.

Source

File name: wordpress/wp-includes/comment-template.php


Lines:

1 to 83 of 83
function get_comment_class( $css_class = '', $comment_id = null, $post_id = null ) {
  global $comment_alt, $comment_depth, $comment_thread_alt;

  $classes = array();

  $comment = get_comment( $comment_id );
  if ( ! $comment ) {
    return $classes;
  }

  // Get the comment type (comment, trackback).
  $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;

  // Add classes for comment authors that are registered users.
  $user = $comment->user_id ? get_userdata( $comment->user_id ) : false;
  if ( $user ) {
    $classes[] = 'byuser';
    $classes[] = 'comment-author-' . sanitize_html_class( $user->user_nicename, $comment->user_id );
    // For comment authors who are the author of the post.
    $post = get_post( $post_id );
    if ( $post ) {
      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( $css_class ) ) {
    if ( ! is_array( $css_class ) ) {
      $css_class = preg_split( '#\s+#', $css_class );
    }
    $classes = array_merge( $classes, $css_class );
  }

  $classes = array_map( 'esc_attr', $classes );

  
/**
 * Filters the returned CSS classes for the current comment.
 *
 * @since 2.7.0
 *
 * @param string[]    $classes    An array of comment classes.
 * @param string[]    $css_class  An array of additional classes added to the list.
 * @param string      $comment_id The comment ID as a numeric string.
 * @param WP_Comment  $comment    The comment object.
 * @param int|WP_Post $post_id    The post ID or WP_Post object.
 */
  return apply_filters( 'comment_class', $classes, $css_class, $comment->comment_ID, $comment, $post_id );
}
 

 View on GitHub View on Trac