get_post_status_object()WP 3.0.0

Получает объект данных указанного статуса записи (поста).

Статус записи регистрируется функцией register_post_status(), эта функция получает объект данных полученный после регистрации статуса записи.

Использует глобальную переменную $wp_post_statuses, которая хранит в себе массив объектов статусов записей.

Смотрите также хуки, которые срабатывают при смене статуса записи: wp_transition_post_status().

1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.09 сек (скорость света) | PHP 7.2.16, WP 5.2.2

Хуков нет.

Возвращает

stdClass|null. Объект статуса.

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

get_post_status_object( $post_status );
$post_status(строка) (обязательный)

Имя зарегистрированного статуса записи.

Список статусов, которые зарегистрированы в wordpress по умолчанию:

  • publish - опубликованный пост (страница или тип записи).
  • pending - запись на рассмотрении перед публикацией.
  • draft - черновик записи.
  • auto-draft - только созданный пост, еще без заголовка, контента и другой информации.
  • future - запись запланированная к публикации в будущем.
  • private - запись не доступная не авторизованным пользователям.
  • inherit - ревизия или вложение (revision or attachment). Смотрите get_children().
  • trash - запись находящаяся в корзине.

Весь список статусов смотрите в коде функции create_initial_post_types(), там WP регистрирует дефолтные статусы.

Примеры

0

#1 Посмотрим что возвращает функция для разных статусов записи.

$post_status_obj = get_post_status_object( 'draft' );
/*
stdClass Object(
	[label] => Черновик
	[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
)
*/
$post_status_obj = get_post_status_object( 'publish' );
/*
stdClass Object(
	[label] => Опубликовано
	[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
)
*/
$post_status_obj = get_post_status_object( 'auto-draft' );
/*
stdClass Object(
	[label] => auto-draft
	[label_count] => Array
		(
			[0] => auto-draft
			[1] => auto-draft
			[singular] => auto-draft
			[plural] => auto-draft
			[context] =>
			[domain] =>
		)

	[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
)
*/

Заметки

Список изменений

С версии 3.0.0 Введена.

Код get_post_status_object() WP 6.5.2

function get_post_status_object( $post_status ) {
	global $wp_post_statuses;

	if ( empty( $wp_post_statuses[ $post_status ] ) ) {
		return null;
	}

	return $wp_post_statuses[ $post_status ];
}