Recentemente os colegas do illuminatikarate depararam-se com um problema bastante interessante e que pode, sem dúvida, ser muito útil aos desenvolvedores e interessados em WordPress. Basicamente, quando você pretende fazer uma listagem de comentários no seu WordPress, o excerto dos comentários é um problema complicado de resolver. Normalmente usamos a função comment_excerpt() mas se você necessitar de mais ou menos do que as 20 palavras que estão programadas para esse excerto, então tem um problema nas mãos. No entanto, existe uma função para usar no ficheiro functions.php do seu template WordPress que resolve esse problema.

excerto comentarios

Começando na função get_comment_excerpt() a partir da linha ~407 do wp-includes/comment-template.php pode-se criar uma nova função que lhe permite definir a dimensão do excerto de comentários facilmente. Veja:

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);
}

Na zona $num_words você pode definir quantas palavras você quer mostrar no excerto desses comentários.

E usando este código PHP, você pode também mostrar uma listagem de comentários no seu template wordpress facilmente:

<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>

Basta útil para mostrar comentários usando excertos definidos de acordo com as dimensões que você deseja pra não ter informação demais ou a menos, ou para não quebrar seu layout desnecessariamente. Fica a dica.

Até já!