wp_count_posts()
Отримує кількість записів будь-якого типу записів та будь-яких статусів (опубліковано, чернетка).
Забезпечує ефективний спосіб отримання кількості записів вказаного типу (результат кешується). Те саме можна зробити за допомогою запиту get_posts() , але цей підхід набагато менш ефективний. Тому при розробці 2.5+ використовуйте цю функцію.
Параметр $perm дозволяє додати в підрахунок особисті записи (private), якщо користувач авторизований і читати приватні пости. Для цього параметр $perm повинен дорівнювати readable
.
Аналогічна функція тільки для коментарів: wp_count_comments()
(повільно) | 50000 разів – 0.11 сек
(дуже швидко) |
PHP 7.3.12, WP 5.4
Хуки з функції
Повертає
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 | Введено. |