Очень удобная и быстрая функция, которая позволяет получить количество постов определенного типа записей, а также любого статуса, даже неопубликованные и удаленные.
В принципе, при работе с WP_Query () вы также можете получить количество постов согласно вашего запроса, но нужно ли это делать в каждом случае или может быть вам захочется получить количество постов, которые обладают не только статусом опубликованных.
wp_count_posts ( $type, $perm ) ;
- $type
- (строка)(необязательно) указываем название типа записей, которое хотим посчитать. По умолчанию: ‘post’.
- $perm
- (строка)(необязательно) позволяет сделать так, чтобы в подсчёт количества записей добавились личные (приватные) посты пользователя . Для этого указываем ‘readable’.
Возвращает объект с указанием количества постов для каждого статуса
. Вот пример того, что в итоге получится:
stdClass Object ( [publish] => 23 [future] => 0 [draft] => 0 [pending] => 0 [private] => 0 [trash] => 0 [auto-draft] => 0 [inherit] => 0 [request-pending] => 0 [request-confirmed] => 0 [request-failed] => 0 [request-completed] => 0 )
stdClass Object ( [publish] => 23 [future] => 0 [draft] => 0 [pending] => 0 [private] => 0 [trash] => 0 [auto-draft] => 0 [inherit] => 0 [request-pending] => 0 [request-confirmed] => 0 [request-failed] => 0 [request-completed] => 0 )
Самое главное не забывать, что функция возвращает объект, а не просто количество опубликованных постов. Сейчас приведу простой пример как вывести количество опубликованных постов для вашего кастомного типа записей:
$count_posts = wp_count_posts('services'); //указываем созданный вами тип записи - services $published_posts = $count_posts->publish; //количество только опубликованных записей echo $published_posts; //выводим полученное количество
$count_posts = wp_count_posts('services'); //указываем созданный вами тип записи - services $published_posts = $count_posts->publish; //количество только опубликованных записей echo $published_posts; //выводим полученное количество