Функция get_post_stati() в WordPress
Функция get_post_stati()
позволяет получить список статусов постов в WordPress. Статусы постов помогают классифицировать их состояние, например, опубликован, черновик или в корзине.
Возвращаемое значение
Функция возвращает массив строк или объектов, представляющих статусы постов.
Использование
get_post_stati( $args, $output, $operator );
Параметры:
-
$args
(array|string): Массив или строка параметров статуса поста для сравнения с объектами глобального$wp_post_statuses
.- По умолчанию: пустой массив.
-
$output
(string): Тип возвращаемых данных. Либо'names'
, либо'objects'
.- По умолчанию:
'names'
.
- По умолчанию:
-
$operator
(string): Логическ��я операция.'or'
означает, что достаточно, чтобы один элемент из массива соответствовал, а'and'
— значит, все элементы должны соответствовать.- По умолчанию:
'and'
.
- По умолчанию:
Примеры использования
Пример 1: Получение названий всех статусов
Чтобы получить названия всех возможных статусов, используйте следующий код:
$stati = get_post_stati();
/*
$stati =
Array (
[publish] => publish,
[future] => future,
[draft] => draft,
[pending] => pending,
[private] => private,
[trash] => trash,
[auto-draft] => auto-draft,
[inherit] => inherit,
)
*/
Пример 2: Получение объектов всех статусов
Если вам нужны не только названия, но и полная информация о статусах, сделайте так:
$stati = get_post_stati( 0, 'objects' );
/*
$stati будет содержать:
Array
(
[publish] => stdClass Object
(
[label] => Published,
[label_count] => Array ( [0] => Published (%s) ),
...
[name] => publish
)
...
)
*/
Пример 3: Получение статусов с заданными параметрами
Вы можете фильтровать статусы по определенным параметрам. Например, получить только те статусы, которые могут быть найдены в поиске на сайте:
$stati = get_post_stati( [ 'publicly_queryable' => true ], 'names' );
/*
$stati =
Array(
[publish] => publish
)
*/
Пример 4: Применение оператора or
и and
Вы можете использовать разные операторы, чтобы управлять тем, какие статусы нужно получать.
// Используем оператор 'or'
$stati = get_post_stati(
[ 'show_in_admin_status_list'=> true, 'protected' => true ],
'names',
'or'
);
/* Результат: все статусы, которые показываются в админке или защищены */
// Используем оператор 'and'
$stati = get_post_stati(
[ 'show_in_admin_status_list'=> true, 'protected' => true ],
'names',
'and'
);
/* Результат: только те статусы, которые и показываются в админке, и защищены */
Примечания
- Глобальная переменная
$wp_post_statuses
содержит информацию о статусах постов. - Функция
register_post_status()
позволяет регистрировать новые статусы для постов.
Изменения
Функция get_post_stati()
была внедрена с версии 3.0.0 и продолжает использоваться в текущих версиях WordPress, включая 6.7.2.
Заключение
Функция get_post_stati()
является полезным инструментом для разработчиков и пользователей WordPress, который позволяет легко получать и фильтровать статусы постов, улучшая работу с содержимым на сайте.