WordPress: How To Change Comment Excerpt Length
July 27, 2011
I recently needed to output a list of comments and bumped into a little trouble trying to output the comment excerpt. Usually I would use the built-in comment_excerpt() function but I only needed 10 words instead of the 20 that is hard-coded. I put together a little function that I found helpful and thought I would share.
I started with get_comment_excerpt() from line ~407 of wp-includes/comment-template.php and pasted it into my_name/functions.php to be modified.
Here’s what I ended up with:
function my_get_comment_excerpt($comment_ID = 0, $num_words = 20) { $comment = get_comment( $comment_ID ); $comment_text = strip_tags($comment->comment_content); $blah = explode(' ', $comment_text); if (count($blah) > $num_words) { $k = $num_words; $use_dotdotdot = 1; } else { $k = count($blah); $use_dotdotdot = 0; } $excerpt = ''; for ($i=0; $i<$k; $i++) { $excerpt .= $blah[$i] . ' '; } $excerpt .= ($use_dotdotdot) ? '...' : ''; return apply_filters('get_comment_excerpt', $excerpt); } |
And here’s a little code to output a list of comments using this function:
<ul> <?php $comments = get_comments(); foreach($comments as $c) : ?> <li> <a href="<?php echo get_permalink($c->comment_post_ID); ?>"> <?php /* output 10 words of comment */ ?> <p><?php echo my_get_comment_excerpt($c->comment_ID, 10); ?></p> <span><?php echo $c->comment_author; ?></span> <span><?php echo date("m/j/Y",strtotime($c->comment_date)); ?> </span> </a> </li> <?php endforeach; ?> </ul> |
Feel free to ask questions in the comments.



Thank you! Works like a charm.
Thanks for sharing. Saved me some time
Thanks a lot, everything I was looking for and works perfectly.