get_post_stati

Получает все существующие статусы постов в виде массива имен или массива объектов.

get_post_stati() работает на основе глобальной переменной $wp_post_statuses, которая содержит полную информацию о статусах, в виде массива объектов.

Хуков нет.

Возвращает

массив имен или массив объектов, зависит от параметра $output.

Использование

get_post_stati( $args, $output, $operator );
$args(строка/массив)
Массив – ключ => значение (key=>value), которые должны встречаться в получаемых статусах.
По умолчанию: array()
$output(строка)
Выводить имена или объекты. names – выведет имена, в любом другом случае объекты.
По умолчанию: ‘names’
$operator(строка)
Логический оператор фильтра $args. “or” будет искать любой параметр из указанных в $args у статусов. “and” будет искать одновременно все указанные параметры у статуса.
По умолчанию: ‘and’

Примеры

#1. Получим имена всех видов статусов на блоге:

$stati = get_post_stati( 0, 'names' );

$stati будет содержать:

$stati = get_post_stati( 0, 'a' );

$stati будет содержать:

$stati = get_post_stati( array('publicly_queryable'=>true), 'names' );

$stati будет содержать:

$stati = get_post_stati( 
	 array(
		   'show_in_admin_status_list'=>true,
		   'protected' => true
	 ), 'names', 'or');
/*
Array
(
	[publish] => publish
	[future] => future
	[draft] => draft
	[pending] => pending
	[private] => private
	[trash] => trash
)
*/

и тоже самое с “and”:

$stati = get_post_stati( 
	 array(
		   'show_in_admin_status_list'=>true,
		   'protected' => true
	 ), 'names', 'and');
/*
Array
(
	[future] => future
	[draft] => draft
	[pending] => pending
)
*/

Код из


wp-includes/post.php

WP 4.7.2

<?php
function get_post_stati( $args = array(), $output = 'names', $operator = 'and' ) {
	global $wp_post_statuses;

	$field = ('names' == $output) ? 'name' : false;

	return wp_filter_object_list($wp_post_statuses, $args, $operator, $field);
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *