Функция get_post_stati() в WordPress: как получить список статусов постов

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

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *