Функция count_many_users_posts()
позволяет получить количество публикаций для нескольких пользователей на основе их ID. Она особенно полезна, если необходимо узнать, сколько постов опубликовали сразу несколько авторов. Это сокращает количество запросов к базе данных и упрощает работу с данными авторов.
count_many_users_posts( int[] $users, string|string[] $post_type = 'post', bool $public_only = false ): string[]
Параметры:
- $users (обязательный):
Массив ID пользователей, для которых нужно получить количество постов. - $post_type (необязательный):
Тип постов, для которых будет произведен подсчет. По умолчанию, это'post'
. Можно передать строку или массив типов записей. - $public_only (необязательный):
Еслиtrue
, возвращаются только публикации, которые доступны для просмотра публике. По умолчанию —false
, и подсчитываются все записи, включая черновики.
Возвращает:
Массив строк, где ключом является ID пользователя, а значением — количество его публикаций. Значения представлены в виде строк.
Пример 1: Подсчет количества постов для нескольких пользователей
В этом примере мы подсчитываем количество постов, опубликованных пользователями с ID 2, 5, 8 и 11.
$users = array( 2, 5, 8, 11 );
$counts = count_many_users_posts( $users );
echo 'Количество постов пользователя 5: ' . $counts[5];
Ожидаемый вывод:
Количество постов пользователя 5: 45
Здесь функция count_many_users_posts()
возвращает массив, где каждый элемент — это количество постов, написанных пользователями с ID, указанными в массиве $users
. В данном примере, пользователь с ID 5 написал 45 постов.
Пример 2: Подсчет постов только определенного типа
Если нужно подсчитать количество записей, отличных от стандартных постов (например, page
или кастомные типы записей), можно передать второй параметр.
$users = array( 3, 6 );
$counts = count_many_users_posts( $users, 'page' );
echo 'Количество страниц, созданных пользователем 3: ' . $counts[3];
Ожидаемый вывод:
Количество страниц, созданных пользователем 3: 10
Здесь мы подсчитываем количество страниц (page
), созданных пользователями с ID 3.
Пример 3: Подсчет только публичных постов
Если нужно учесть только публичные записи, установите третий параметр в true
. Это исключит черновики и приватные записи.
$users = array( 4, 7 );
$counts = count_many_users_posts( $users, 'post', true );
echo 'Количество публичных постов пользователя 7: ' . $counts[7];
Ожидаемый вывод:
Количество публичных постов пользователя 7: 32
В этом примере учитываются только те посты, которые опубликованы и видны всем пользователям.
Пример 4: Подсчет для нескольких типов записей
Вы также можете передать массив типов записей, чтобы подсчитать сразу несколько типов записей (например, посты и страницы).
$users = array( 9, 12 );
$post_types = array( 'post', 'page' );
$counts = count_many_users_posts( $users, $post_types );
echo 'Количество постов и страниц, созданных пользователем 9: ' . $counts[9];
Ожидаемый вывод:
Количество постов и страниц, созданных пользователем 9: 67
Пример 5: Вывод массива с данными
Для того чтобы увидеть все данные о публикациях всех пользователей в виде массива, можно использовать функцию print_r
.
$users = array( 1, 15 );
$counts = count_many_users_posts( $users );
print_r( $counts );
Ожидаемый вывод:
Array (
[1] => 105
[15] => 34
)
Заключение
Функция count_many_users_posts()
— это удобный инструмент для получения данных о количестве записей для нескольких пользователей в WordPress. Она поддерживает как стандартные посты, так и другие типы записей (например, страницы или кастомные записи), а также позволяет фильтровать только публичные публикации.