Сухая цифра количества комментариев меня никогда не устраивала, поэтому я старался показать, кто же принимает участие в комментариях. Для меня такой подход более информативен, а для комментатора еще и полезен, ведь его имя отображается не только в комментариях, но и на главной странице. Вся хитрость заключалась в том, чтобы правильно подсчитать комментаторов, ведь их может быть меньше, чем реальных комментариев, так как один комментатор может написать несколько сообщений.
Так же есть и другой момент – если комментаторов слишком много, их простой список может получиться слишком длинным, что не очень красиво смотрится. Поэтому тут нужно выводить не всех комментаторов подряд, а только определенное количество первых, а остальных можно вывести и в виде простой цифры. Если вы хотите показать самых первых комментаторов и подсчитать всех остальных, то вам поможет специальная функция.
Откройте файл functions.php и добавьте в него следующий код:
function tp_discussion_links() {
echo tp_get_discussion_links();
}
function tp_get_discussion_links() {
global $post;
$content = '';
$unique_commentors = array();
$comments = get_comments( array( 'post_id' => $post->ID ) );
foreach ( $comments as $comment )
if ( '1' == $comment->comment_approved )
$unique_commentors[$comment->comment_author_email] = $comment;
$total_unique_commentors = count( $unique_commentors );
$counter = 1;
foreach ( $unique_commentors as $comment ) {
if ( $counter > 3 )
break;
if ( 1 != $counter && $total_unique_commentors == $counter )
$content .= __( ' и ', 'Theme' );
else if ( 1 != $counter )
$content .= ', ';
$content .= get_avatar( $comment, 16 ) . ' ' . get_comment_author_link( $comment->comment_ID );
$counter++;
}
if ( $total_unique_commentors > 3 )
if ( ( $total_unique_commentors - 3 ) != 1 )
$content .= sprintf( __( ' и еще %s</span>', 'Theme' ), ( $total_unique_commentors - 3 ) );
else
$content .= __( ' и еще один', 'Theme' );
else {
if ( $total_unique_commentors == 1 )
$content .= __( '', 'Theme' );
else
$content .= __( '', 'Theme' );
}
return $content;
} Функция tp_get_discussion_links формирует список первых трех комментаторов, оставивших свои отзывы к посту, ориентируясь на их e-mail. Если в обсуждении принимало участие больше трех комментаторов, то будет подсчитано количество остальных. У каждого комментатора выводится аватар, и, если он указывал при комментировании, ссылка на сайт. Функция tp_discussion_links выводит полученный список в указанном вами месте.
Чтобы вывести список первых комментаторов, нужно вставить код
</pre> <p>внутри цикла</p> <pre> ...цикл вывода постов ...
Пользуйтесь!









Побоялся делать вот так:
Сделал так:
Чтобы вывести список первых комментаторов, нужно вставить код
А где код та? Поле пустое