Функция возвращает массив объектов (или массив имён) всех поддерживаемых статусов постов с возможностью фильтрации результатов по значению определенного параметра в объекте статуса.
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');