Функция get_post_status_object()
в WordPress предоставляет доступ к объекту статуса записи по его имени. Это позволяет разработчикам получать детальную информацию о конкретном статусе, что может быть полезно для управления контентом и отображения информации на сайте.
get_post_status_object( string $post_status ): stdClass|null
get_post_status_object()
используется для получения объекта статуса записи, зарегистрированного в WordPress. Статусы записей могут быть созданы с помощью функции register_post_status()
, и эта функция возвращает соответствующий объект статуса, содержащий все его свойства.
Параметры
$post_status
(обязательный, string) — Имя зарегистрированного статуса записи, который вы хотите получить.
Возвращаемое значение
stdClass|null
— Объект статуса записи илиnull
, если статус не найден.
Пример 1: Получение объекта статуса «черновик»
В этом примере мы получим объект статуса записи, который соответствует статусу «черновик»:
$post_status_obj = get_post_status_object('draft');
echo esc_html($post_status_obj->label); // Вывод: Черновик
/* $post_status_obj будет содержать:
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
)
*/
Пример 2: Получение объекта статуса «опубликовано»
Здесь мы получим объект статуса для опубликованного поста:
$post_status_obj = get_post_status_object('publish');
echo esc_html($post_status_obj->label); // Вывод: Опубликовано
/* $post_status_obj будет содержать:
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
)
*/
Пример 3: Получение объекта статуса «авто-черновик»
Теперь посмотрим, как работает функция для статуса «авто-черновик»:
$post_status_obj = get_post_status_object('auto-draft');
echo esc_html($post_status_obj->label); // Вывод: auto-draft
/* $post_status_obj будет содержать:
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
)
*/
Использование глобальной переменной $wp_post_statuses
Также можно получить объект статуса через глобальную переменную $wp_post_statuses
:
global $wp_post_statuses;
$obj = $wp_post_statuses['pending']; // Статус "на рассмотрении"
echo esc_html($obj->label); // Вывод: На рассмотрении
Заключение
Функция get_post_status_object()
является полезным инструментом для разработчиков, позволяющим получать информацию о конкретных статусах записей в WordPress. Используя эту функцию, можно легко получать доступ к различным свойствам статусов, что может помочь в разработке более сложных функций и возможностей для управления контентом на сайте.