get_post_stati() — возвращает все существующие статусы постов

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Функция возвращает массив объектов (или массив имён) всех поддерживаемых статусов постов с возможностью фильтрации результатов по значению определенного параметра в объекте статуса.

get_post_stati( $args = array(), $output = 'names', $operator = 'and' )
$args
(массив) фильтрующий массив вида key=>value (параметр объекта=>значение параметра), то есть будут возвращены только те статусы, у которых имеется этот параметр, равный заданному значению
$output
(строка) если указать что угодно, кроме names то будет выведен массив объектов статусов постов, по умолчанию выводятся только имена (массив из имен) тех статусов, которые удовлетворяют условию $args
$operator
(строка) может принимать два значения:

  • AND — каждый объект должен удовлетворять условию, заданному в $args
  • OR — условию в $args должен удовлетворять хотя бы один из объектов
  • NOT — будут возвращены все статусы, не соответствующие условиям из массива $args

Примеры

Получаем массив объектов всех статусов постов:

$all_statuses = get_post_stati( array(), 'objects' );

Этого также можно добиться, обратившись к глобальной переменной $wp_post_statuses.

global $wp_post_statuses;
$all_statuses = $wp_post_statuses;

Теперь разберемся с фильтрованием результатов, предположим, нам нужно получить все статусы постов, у которых параметр public = true, тогда:

$public_statuses = get_post_stati( array( 'public' => true ), 'objects', 'OR');

А теперь наоборот, получим статусы постов, у которых параметр public равен чему угодно, но только не true:

$not_public_statuses = get_post_stati( array( 'public' => true ), 'objects', 'NOT');
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии