Flector

Как вывести список последних комментаторов каждой записи?

Авторы последних комментариев к записи

В цикле вывода записей (на главной, в рубриках и т.д.) у каждой записи можно вывести ники последних комментаторов текущей записи. Для этого вам необходимо добавить в нужный файл шаблона вашей темы следующий код:

<?php 
$args = array('number' => 5, 'post_id' => get_the_ID(), 'status' => 'approve');
$latest_comment = get_comments($args);
if ($latest_comment) {echo '<p>Комментарии от: ';}
if ($latest_comment) foreach($latest_comment as $comment) { ?>
<?php echo get_avatar($comment->comment_author_email, 24) . ' '; ?> 
<?php echo $comment->comment_author . ' '; ?>
<?php } ?>
<?php echo '</p>'; ?>

Недостаток у этого кода только один - он не учитывает того, что один комментатор может оставить несколько комментариев и, поэтому возможна ситуация, когда в списке один человек повторяется 5 раз. Это можно изменить с помощью такого кода:

<?php
global $wpdb, $post;
$comment_info = $wpdb->get_results("SELECT DISTINCT comment_author,
comment_author_email
    FROM (SELECT DISTINCT comment_author, comment_author_email
    FROM {$wpdb->comments}
    WHERE comment_post_ID = {$post->ID}
       AND comment_approved = '1'
    ) AS WHATEVER");
$comment_info = array_reverse($comment_info);
$comment_info = array_slice($comment_info, 0, 5);
echo '<p>Комментарии от: ';
foreach($comment_info as $info) {
    echo get_avatar($info->comment_author_email, 24) . ' ';
    echo $info->comment_author .' ';
}
echo '</p>';
?>

Этот код сложнее, так как использует запрос к базе данных, но зато он позволяет избежать повторяющихся имен в списке последних комментаторов записи.


Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!