Фильтр порядка
Подскажите как сделать фильтр по порядку. Выводить сперва у кого больше постов
выдаю так
<?php
$us_id = $user_ID;
$user_info = get_userdata( $us_id );
$args = array('user_id' => $us_id, 'count' => true, 'status' => 'approve',); $commratings = get_comments( $args );
if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $author) {
echo "<li class='spisok-users'>";
echo '<br/><a href="/account/?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 href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts($author->ID) . '</span></a>';
echo '</li>';
}
} else {
echo 'Пользователи не найдены';
}
?>
https://developer.wordpress.org/reference/classes/wp_user_query/#order-orderby-parameters
Я думаю, что все понятно.
$user_query - когда получаете эту переменную, то там же добавл и тип сортировки.
Также возможно будет полезно:
https://wp-kama.ru/function/get_users#orderby
спасибо большое.
что-то не получается исключить пользователей без постов.
фильтр только на исключение по id
а этот не работает has_published_posts или не правильно делаю
Как вариант, в цикле используйте функцию для проверки наличия постов в $author
и если нет постов, то continue;
https://wp-kama.ru/function/count_user_posts
не получается
скиньте код, который вы пишите начиная с этих строк:
foreach ( $user_query->results as $author) {выводи комментов не работает
<div class="pf-list"> <ul style="display: flow-root;"> <?php $us_id = $user_ID; $user_info = get_userdata( $us_id ); $args = array('user_id' => $author->ID, 'count' => true, 'status' => 'approve',); $commratings = get_comments( $args ); $user_query = new WP_User_Query( array ( 'orderby' => 'post_count', 'order' => 'DESC', '' => '' )); //фильтр по постам if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author) { echo "<li class='spisok-users'>"; echo '<br/><a href="/account/?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 href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts($author->ID) . '</span></a>'; echo ' <span data-tooltip="Комментариев"> <i class="fa fa-comments-o"></i> ' . $commratings . '</span><br/><br/>'; echo '</li>'; } } else { echo '<ol><pre>Пользователи не найдены</pre></ol>'; } ?> </ul>по коду выше: какая проблема ?
1) "выводи комментов не работает"
или
2) "что-то не получается исключить пользователей без постов."
исключить пользователей без постов."
Если еще комменты посмотришь буду только рад
код проверен, работает.
<ul style="display: flow-root;"> <?php $user_query = new WP_User_Query( array( 'orderby' => 'post_count', 'order' => 'DESC', '' => '' ) ); //фильтр по постам if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { $count_posts = count_user_posts( $author->ID, 'post', true ); // проверка на количество постов if ( ! $count_posts ) { continue; } $args = array( 'user_id' => $author->ID, 'count' => true, 'status' => 'approve', ); $commratings = get_comments( $args ); // количество комментов КАЖДОГО автора echo "<li class='spisok-users'>"; echo '<br/><a href="/account/?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 href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts( $author->ID ) . '</span></a>'; echo ' <span data-tooltip="Комментариев"> <i class="fa fa-comments-o"></i> ' . $commratings . '</span><br/><br/>'; echo '</li>'; } } else { echo '<ol><pre>Пользователи не найдены</pre></ol>'; } ?> </ul>спасибо большое. буду изучать дальше.
фильтр по комментам как и посты буду пробывать сам сделать
я пытался так сделать 'user_id' => $author->ID, но не работало. буду изучать на примере
что не так? пытаюсь с комментариями сделать как с постами
$user_query = new WP_User_Query( array( 'orderby' => 'count', 'order' => 'DESC' )); //фильтр по постам if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { $commratings = get_comments( $author->ID, 'count', true ); // проверка на количество постов if ( ! $commratings ) { continue; } $args = array( 'user_id' => $author->ID, 'count' => true, 'status' => 'approve', ); $commratings = get_comments( $args ); // количество комментов КАЖДОГО автора echo "<li class='spisok-users'>"; echo '<br/><a href="/account/?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 href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts( $author->ID ) . '</span></a>'; echo ' <span data-tooltip="Комментариев"> <i class="fa fa-comments-o"></i> ' . $commratings . '</span><br/><br/>'; echo '</li>'; } }foreach ( $user_query->results as $author ) { $count_posts = count_user_posts( $author->ID, 'post', true ); if ( ! $count_posts ) { continue; } $args = array( 'user_id' => $author->ID, 'count' => true, 'status' => 'approve', ); $commratings = get_comments( $args );http://joxi.ru/E2pnGGyc4kE48r
невнимательность.
Поэтому вопросу я отвечать больше не буду.
хорошо. извени
да посты я сделал, т.к. ты помог. я комменты пытаюсь сделать
$commratings - в той переменной комменты каждого пользователя-автора.
Если нужно исключить, то добавл проверку по аналогии.
если нет комментов, то continue
спс. ща буду тестить
ты это имеешь веду ?
$continue = get_comments( $author->ID, 'count', true ); // проверка на количество постов if ( ! $continue ) { continue; }опять не внимателен...
я вот так сделал и не хрена
$user_query = new WP_User_Query( array( 'orderby' => 'count', 'order' => 'DESC' )); //фильтр по постам if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { $commratings = get_comments( $author->ID, 'count', true ); // проверка на количество постов if ( ! $commratings ) { continue; } $args = array( 'user_id' => $author->ID, 'count' => true, 'status' => 'approve', ); $commratings = get_comments( $args ); // количество комментов КАЖДОГО авторавроде так но не пашет
$comment_content = get_comments( $author->ID, 'count', true ); // проверка на количество постов if ( ! $comment_content ) { continue; }https://wp-kama.ru/function/get_comments
Параметры для функции СОВСЕМ другие.
Вы параметры от функции count_user_posts() засунули в get_comments()
ЕЩЕ раз:
четко задайте вопрос: что НЕ должно выводится в цикле, в котором вы перебираете пользователей?
я хочу выдать только пользователей у которых комментарии есть.
$user_query = new WP_User_Query( array( 'orderby' => 'count', 'order' => 'DESC' )); //фильтр по постам if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { $comment_content = get_comments( $author->ID, 'count', true ); // проверка на количество постов if ( ! $comment_content ) { continue; }Здесь код, что я выше кидал.
Но добавил комменты и continue, если НЕТ комментов
<ul style="display: flow-root;"> <?php $user_query = new WP_User_Query( array( 'orderby' => 'post_count', 'order' => 'DESC', '' => '' ) ); //фильтр по постам if ( ! empty( $user_query->results ) ) { foreach ( $user_query->results as $author ) { $count_posts = count_user_posts( $author->ID, 'post', true ); // проверка на количество постов if ( ! $count_posts ) { continue; // пропускаем пользователя, в которого нет постов } $args = array( 'user_id' => $author->ID, 'count' => true, 'status' => 'approve', ); $commratings = get_comments( $args ); // количество комментов КАЖДОГО автора if ( ! $commratings ) { continue; // пропускаем пользователя, в которого нет комментов } echo "<li class='spisok-users'>"; echo '<br/><a href="/account/?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 href="/?author=' . $author->ID . '">' . '<span data-tooltip="Статей"><i class="fa fa-eercast"></i> ' . count_user_posts( $author->ID ) . '</span></a>'; echo ' <span data-tooltip="Комментариев"> <i class="fa fa-comments-o"></i> ' . $commratings . '</span><br/><br/>'; echo '</li>'; } } else { echo '<ol><pre>Пользователи не найдены</pre></ol>'; } ?> </ul>я уже запутался. как бы сделал. Спасибо что помог.
Завтра утром на свежую голову буду изучать и побывать фильтрами поиграться.
Можешь посоветовать что посмотреть или почитать для таких целий?
Не понятно, что вы понимаете под фильтрами.
https://wp-kama.ru/handbook/codex/hooks - я сам долго въезжал, что и с чем его едят.
А так - гугл в помощь.
А фильтров - очень много.
Если речь о параметрах запросов - то это нужно смотреть параметры каждой функции.
На этом сайте они хорошо расписаны.
Понял спс. завтра почитаю. Я это уже смотрел, но перечитаю
если интересно, моешь посмотреть что я делаю https://pfilan.ru/account/
типа профиль пользователя. что-то сам сделал, что-то загулил, что-то помогли.
уже голова раком )