Фильтр пользователей по количеству комментариев
Не получается сделать фильтр по комментариям, чтобы отображались пользователи по количеству комментариев
вывожу так
<?php global $wpdb; $sql = "SELECT user_id, COUNT( * ) AS total FROM $wpdb->comments WHERE comment_approved = 1 AND user_id != 0 GROUP BY user_id ORDER BY total DESC"; $comment_counts = $wpdb->get_results( $sql ); $user_query = new WP_User_Query( array( '' => '' )); if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { $args = array( 'user_id' => $author->ID, 'count' => true, 'status' => 'approve', ); $commratings = get_comments( $args ); $user = get_userdata( $count->user_id ); if ( ! $commratings ) { continue; // пропускаем пользователя, в которого нет комментов } echo "<li class='spisok-users'>"; echo '<br/><a href="/author/?uid=' . $author->ID . '">' . get_avatar( $author->ID ) . '<p></p><span class="color-pf-green">' . get_the_author_meta( 'display_name', $author->ID ) . '</span></a><br/><br/>'; echo '<a class="crug" href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts($author->ID) . '</span></a>'; echo ' <span class="crug" data-tooltip="Сообщений"> <i class="fa fa-comments-o"></i> ' . $commratings . '</span><br/><br/>'; echo '</li>'; } } else { echo '<ol><pre>Пользователи не найдены</pre></ol>'; } ?>
уточните вопрос... чтоб сортировка пользователей была по количеству комментов?
чтоб первыми шли те, у кого наибольше комментов?
да. не могу не как сделать
не получается
Нужно читать, разобраться и написать код для себя:
https://wordpress.stackexchange.com/questions/195155/get-most-active-users-sort-by-comment-count
Стандартного метода сортировки нет, а вернее - по умолч, из коробки - такое не работает.
спасибо буду разбиваться.
В данных юзеров нет информации о том кто сколько оставил комментариев. Поэтому тебе нужно делать отдельный запрос на подсчет комментариев пользователей, и только потом выводить пользователей. Или можно при публикации комментария добавлять +1 в метаполе юзеру, и делать выборку по этому метаполю.
П.С. Для выборки пользователей используй get_users().
Вот нашел решение в наших интернетах:
От сюда: https://wordpress.stackexchange.com/questions/195155/get-most-active-users-sort-by-comment-count
спасибо буду разбиваться.
Кстати код выводит лишних не опознанных пользователей
Как это неопознаных? Удаленные что ли? В цикле проверяй если юзера нет, то ничего не делаей или делай что-то другое.
2 снизу
есть еще
У этих пользователей просто нет
display_name
, попробуй заменитьда получилось. спасибо.
а как автора связать ? а то не пашет теперь
Все ровно выдает не опознаны объекты
пробую выдать чтобы все работало но фильтр не делается