get_post_stati() WP 3.0.0

Отримує всі існуючі статуси постів як масиву імен чи масиву об’єктів.

Працює на основі глобальної змінної $wp_post_statuses , яка містить повну інформацію про статуси у вигляді масиву об’єктів.

Працює на основі:
Хуків немає.

Повертає

Строку[]|stdClass[]. масив імен або масив об’єктів залежить від параметра $output .

Використання

get_post_stati ($ args, $ output, $ operator);
$args
(рядок/масив)
Масив – ключ => значення (
key=>value), які мають зустрічатися в отримуваних статусах.


За замовчуванням: array()
$output
(рядок)
Виводити імена чи об’єкти. names – виведе імена, у будь-якому іншому випадку об’єкти.


За замовчуванням: ‘names’
$operator
(рядок)
Логічний оператор фільтра $args. “or” шукатиме будь-який параметр із зазначених у $args у статусів. “and” буде шукати одночасно всі зазначені параметри статусу.


За замовчуванням: ‘and’

Приклади

0

#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
)
*/
0

#2 Отримаємо об’єкти всіх видів статусів на блозі:

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

$stati міститиме:

Array
(
	[publish] => stdClass Object
		(
			[label] => Published
			[label_count] => Array
				(
					[0] => Published (%s)
					[1] => Published (%s)
					[singular] => Published (%s)
					[Plural] => Published (%s)
					[context] =>
					[domain] =>
				)

			[exclude_from_search] =>
			[_builtin] => 1
			[public] => 1
			[internal] =>
			[protected] =>
			[private] =>
			[publicly_queryable] => 1
			[show_in_admin_status_list] => 1
			[show_in_admin_all_list] => 1
			[name] => publish
		)

	[future] => stdClass Object
		(
			[label] => Scheduled
			[label_count] => Array
				(
					[0] => Scheduled (%s)
					[1] => Scheduled (%s)
					[singular] => Scheduled (%s)
					[Plural] => Scheduled (%s)
					[context] =>
					[domain] =>
				)

			[exclude_from_search] =>
			[_builtin] => 1
			[public] =>
			[internal] =>
			[protected] => 1
			[private] =>
			[publicly_queryable] =>
			[show_in_admin_status_list] => 1
			[show_in_admin_all_list] => 1
			[name] => future
		)

	[draft] => stdClass Object
		(
			[label] => Draft
			[label_count] => Array
				(
					[0] => Draft (%s)
					[1] => Drafts (%s)
					[singular] => Draft (%s)
					[plural] => Drafts (%s)
					[context] =>
					[domain] =>
				)

			[exclude_from_search] =>
			[_builtin] => 1
			[public] =>
			[internal] =>
			[protected] => 1
			[private] =>
			[publicly_queryable] =>
			[show_in_admin_status_list] => 1
			[show_in_admin_all_list] => 1
			[name] => draft
		)

	[pending] => stdClass Object
		(
			[label] => Pending
			[label_count] => Array
				(
					[0] => Pending (%s)
					[1] => Pending (%s)
					[singular] => Pending (%s)
					[Plural] => Pending (%s)
					[context] =>
					[domain] =>
				)

			[exclude_from_search] =>
			[_builtin] => 1
			[public] =>
			[internal] =>
			[protected] => 1
			[private] =>
			[publicly_queryable] =>
			[show_in_admin_status_list] => 1
			[show_in_admin_all_list] => 1
			[name] => pending
		)

	[private] => stdClass Object
		(
			[label] => Private
			[label_count] => Array
				(
					[0] => Private (%s)
					[1] => Private (%s)
					[singular] => Private (%s)
					[plural] => Private (%s)
					[context] =>
					[domain] =>
				)

			[exclude_from_search] =>
			[_builtin] => 1
			[public] =>
			[internal] =>
			[protected] =>
			[private] => 1
			[publicly_queryable] =>
			[show_in_admin_status_list] => 1
			[show_in_admin_all_list] => 1
			[name] => private
		)

	[trash] => stdClass Object
		(
			[label] => Trash
			[label_count] => Array
				(
					[0] => Trash (%s)
					[1] => Trash (%s)
					[singular] => Trash (%s)
					[Plural] => Trash (%s)
					[context] =>
					[domain] =>
				)

			[exclude_from_search] => 1
			[_builtin] => 1
			[public] =>
			[internal] => 1
			[protected] =>
			[private] =>
			[publicly_queryable] =>
			[show_in_admin_status_list] => 1
			[show_in_admin_all_list] =>
			[name] => trash
		)

	[auto-draft] => stdClass Object
		(
			[label] => auto-draft
			[label_count] => Array
				(
					[0] => auto-draft
					[1] => auto-draft
				)

			[exclude_from_search] => 1
			[_builtin] => 1
			[public] =>
			[internal] => 1
			[protected] =>
			[private] =>
			[publicly_queryable] =>
			[show_in_admin_status_list] =>
			[show_in_admin_all_list] =>
			[name] => auto-draft
		)

	[inherit] => stdClass Object
		(
			[label] => inherit
			[label_count] => Array
				(
					[0] => inherit
					[1] => inherit
				)

			[exclude_from_search] =>
			[_builtin] => 1
			[public] =>
			[internal] => 1
			[protected] =>
			[private] =>
			[publicly_queryable] =>
			[show_in_admin_status_list] =>
			[show_in_admin_all_list] =>
			[name] => inherit
		)

)
0

#3 Отримаємо статуси з потрібними параметрами (фільтр статусів)

У цьому вся прикладі ми отримаємо імена статусів у яких встановлено параметр publicly_queryable , тобто. ті статуси, які беруть участь у пошуку по сайту:

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

/* $stati =
Array(
	[publish] => publish
)
*/
0

#4 Приклад, що показує, як працює параметр $operator

Вкажемо 2 параметри масиву $args. or – виведе статуси у яких зустрічається або перший чи другий, а and виведе статуси у яких зустрічаються обидва параметри:

$stati = get_post_stati(
	[ 'show_in_admin_status_list'=>true, 'protected'=>true ],
	'names',
	'or'
);

/* $stati =
Array (
	[publish] => publish
	[future] => future
	[draft] => draft
	[pending] => pending
	[private] => private
	[trash] => trash
)
*/

і те саме з “and”:

$stati = get_post_stati(
	[ 'show_in_admin_status_list'=>true, 'protected'=>true ],
	'names',
	'and'
);

/* $stati =
Array (
	[future] => future
	[draft] => draft
	[pending] => pending
)
*/

нотатки

список змін

З версії 3.0.0Введено.

Код get_post_stati() WP 6.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *