Функция 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, который позволяет легко получать и фильтровать статусы постов, улучшая работу с содержимым на сайте.
 
						