get_post_status_object()
Получает объект данных указанного статуса записи (поста).
Статус записи регистрируется функцией 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 регистрирует дефолтные статусы.
Примеры
#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 ) */
Заметки
- Global. stdClass[]. $wp_post_statuses List of post statuses.
- Смотрите: register_post_status()
Список изменений
С версии 3.0.0 | Введена. |
Код get_post_status_object() get post status object WP 6.7.1
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 ]; }