То, что я хотел бы сделать, это иметь список пользователей, которые внесли хотя бы один пост.
Мне нужно показать следующее:
[Фото пользователя] | [Имя пользователя] | [Количество сообщений пользователя]
например
[фото] Джо Блоггс (8)
Я вздрогнул и пошел по этому маршруту:
<?php
$blogusers = get_users( 'orderby=post_count' );
foreach ( $blogusers as $user ) {
echo '<li>' . esc_html( $user->display_name ) . '</li>';
}
?>
Однако, похоже, что это просто возвращает всех пользователей, зарегистрированных в блоге, а не тех, кто внес свой вклад, поэтому я, конечно, не делаю это правильно.
Я новичок в WordPress и PHP, поэтому вся помощь будет оценена.
posts
count
post-status
users
steakpi
источник
источник
Ответы:
Вам нужно установить
who
параметр вget_users
РЕДАКТИРОВАТЬ
Кажется, я должен был быстро ответить. Код в вашем вопросе и в моем ответе - это начало того, чего вы хотите достичь.
Сейчас у меня нет времени писать код, чтобы посмотреть регби, но вот полный код, использованный в двадцати четырнадцати для отображения авторов и их количества постов. Надеюсь это поможет
Просто назовите это в своих файлах шаблона как
источник
count_many_users_posts()
Функция должна использоваться для повышения эффективности при подсчете множества пользователей.Там нет никакого способа по умолчанию в WordPress , чтобы сделать эту задачу, как и Питер Goosen указал, существует аргумент
who
для того,get_users()
что возвращает пользователей , которые могут сообщение, а не пользователи , которые уже размещены.Однако вы можете использовать,
'pre_user_query'
чтобы добавить предложениеJOIN
SQL, чтобы получить только пользователей, у которых есть хотя бы один пост.Честно говоря, когда вы запрашиваете пользователи , заказывающие их по почте кол -во , присоединяйтесь уже создан WordPress, но используя
OUTER LEFT JOIN
, так что даже пользователи, не имеющие сообщений возвращаются, так что единственное , что вам нужно , чтобы заменитьOUTER LEFT JOIN
на аINNER JOIN
источник
Начиная с версии
4.3.0
, теперь вы можете указать параметрhas_published_posts
дляget_users();
вызова функции.пример
Ресурсы
источник