COUNT_MANY_USERS_POSTS() │ WP 3.0.0
Функция для подсчета количества записей, написанных пользователями.
Описание
Эта функция возвращает количество постов, написанных списком пользователей. Она использует функцию get_posts_by_author_sql() для получения данных.
Возврат значения
Функция возвращает массив строк, где количество записей каждого пользователя указано по ID пользователя.
Использование
Синтаксис
count_many_users_posts( $users, $post_type, $public_only );
- $users (array[int]) (обязательный): Массив ID пользователей, для которых необходимо подсчитать посты.
- $post_type (string|array[string]): Тип поста или массив типов постов, которые нужно проверить. По умолчанию используется
'post'. - $public_only (bool): Если установить в
true, функция вернет только количество публичных постов. По умолчаниюfalse.
Пример использования
Представим, что у нас есть пользователи с ID 1 и 141. Мы хотим получить количество постов, которые они написали:
$users = [ 1, 141 ];
$counts = count_many_users_posts( $users );
print_r( $counts );
/*
Array (
[1] => 157
[141] => 15
)
*/
Примечания
- Функция использует глобальный объект базы данных WordPress, который обозначается как
$wpdb.
Изменения
- С версии 3.0.0: Функция была введена в ядро WordPress.
Код функции
Вот как выглядит код функции count_many_users_posts:
function count_many_users_posts( $users, $post_type = 'post', $public_only = false ) {
global $wpdb;
$count = array();
if ( empty( $users ) || ! is_array( $users ) ) {
return $count;
}
$userlist = implode( ',', array_map( 'absint', $users ) );
$where = get_posts_by_author_sql( $post_type, true, null, $public_only );
$result = $wpdb->get_results( "SELECT post_author, COUNT(*) FROM $wpdb->posts $where AND post_author IN ($userlist) GROUP BY post_author", ARRAY_N );
foreach ( $result as $row ) {
$count[ $row[0] ] = $row[1];
}
foreach ( $users as $id ) {
if ( ! isset( $count[ $id ] ) ) {
$count[ $id ] = 0;
}
}
return $count;
}
Связанные функции
В WordPress есть другие полезные функции, которые могут вам пригодиться:
- auth_redirect(): Перенаправление авторизованных пользователей.
- count_user_posts(): Подсчет постов конкретного пользователя.
- get_current_user_id(): Получение ID текущего пользователя.
- get_users(): Получение списка пользователей.
Эти функции могут быть полезны для выполнения более сложных задач с пользователями и постами в WordPress.