wp_count_posts()
Получает количество записей любого типа записей и любых статусов (опубликовано, черновик).
Обеспечивает эффективный способ получения количества записей указанного типа (результат кэшируется). Тоже самое можно сделать с помощью запроса get_posts(), но этот подход гораздо менее эффективен. Поэтому при разработке для 2.5+ используйте эту функцию.
Параметр $perm позволяет добавить в подсчет личные записи (private), если пользователь авторизован и может читать приватные посты. Для этого параметр $perm должен равняться readable
.
Аналогичная функция, только для комментариев: wp_count_comments()
Хуки из функции
Возвращает
stdClass
. Объект статусов постов. Каждый статут содержит количество записей в нем. Т.е. объект содержит количество опубликованных постов, черновиков и т.д.
stdClass Object ( [publish] => 60 [future] => 0 [draft] => 9 [pending] => 3 [private] => 0 [trash] => 0 [auto-draft] => 3 [inherit] => 0 )
Использование
$count = wp_count_posts( $type, $perm );
- $type(строка)
- Название типа записи, количество записей которого нужно посчитать.
По умолчанию: 'post' - $perm(строка)
- Чтобы текущему авторизованному пользователю показывались его личные (private) записи ставим этот параметр в
readable
.
По умолчанию: ''
Примеры
#1 Базовое использование
Вернет объект данных о числе записей каждого статуса. Можно использовать функцию var_dump(), чтобы посмотреть что содержится в объекте.
$count_posts = wp_count_posts(); // в итоге получим что-то такое: /* stdClass Object ( [publish] => 60 [future] => 0 [draft] => 9 [pending] => 3 [private] => 0 [trash] => 0 [auto-draft] => 3 [inherit] => 0 ) */
#2 Количество опубликованных постов
Чтобы получить количество опубликованных постов используем такой код:
$count_posts = wp_count_posts(); $published_posts = $count_posts->publish;
Если не нужна поддержка PHP4, то можно использовать такую короткую запись верхнего кода:
$published_posts = wp_count_posts()->publish;
#3 Считаем черновики
Чтобы посчитать сколько у нас в базе данных черновиков используем такой код (для PHP5):
$draft_posts = wp_count_posts()->draft;
#4 Считаем другие типы записей
Чтобы посчитать сколько у нас опубликовано записей произвольного типа, допустим new_post_type
, используем такой код:
$published_posts = wp_count_posts('new_post_type')->publish;
Заметки
- Global. wpdb. $wpdb WordPress database abstraction object.
Список изменений
С версии 2.5.0 | Введена. |