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

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

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');

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: