Как вывести список последних комментаторов каждой записи?
В цикле вывода записей (на главной, в рубриках и т.д.) у каждой записи можно вывести ники последних комментаторов текущей записи. Для этого вам необходимо добавить в нужный файл шаблона вашей темы следующий код:
<?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>'; ?> |
Этот код сложнее, так как использует запрос к базе данных, но зато он позволяет избежать повторяющихся имен в списке последних комментаторов записи.