Подсчет количества записей пользователей в WordPress – count_many_users_posts()

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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *