Функция get_post_status()
в WordPress позволяет получить статус записи (или поста) по её ID. Это особенно полезно для определения текущего состояния записи, будь то опубликованная, черновик или любой другой статус. Эта функция также может возвращать статус вложения, если оно прикреплено к записи.
string|false get_post_status( int|WP_Post $post = 0 );
Параметры функции
$post
(int|WP_Post) — Идентификатор записи или объектWP_Post
. Если параметр не передан, функция вернет статус текущей записи в глобальном контексте. По умолчанию: 0.
Возвращаемое значение
Функция возвращает строку, представляющую статус записи, если запрос выполнен успешно. Возможные статусы включают:
publish
— Запись опубликованаfuture
— Запись запланированаdraft
— Запись является черновикомpending
— Запись ожидает модерацииprivate
— Запись приватнаtrash
— Запись находится в корзинеauto-draft
— Автоматически созданный черновикinherit
— Вложение унаследовано от родительского поста
Если функция не смогла найти запись по указанному ID, она вернет false
.
Принцип работы
Функция get_post_status()
использует данные из функции get_post()
, чтобы определить статус указанного поста. Если передан ID вложения, функция вернет статус родительской записи. Если вложение не прикреплено к посту, оно будет считаться опубликованным, и функция вернет publish
.
Пример 1: Получение статуса поста по ID
$post_id = 121; // ID поста, статус которого мы хотим получить
$status = get_post_status( $post_id );
if ( $status ) {
echo 'Статус поста: ' . $status;
} else {
echo 'Пост не найден.';
}
Этот код выведет статус поста, например publish
, если пост опубликован, или draft
, если это черновик.
Пример 2: Получение локализованного названия статуса поста
$post_id = 121; // ID поста
$status = get_post_status( $post_id );
if ( $status ) {
$status_object = get_post_status_object( $status );
echo 'Статус поста: ' . $status_object->label; // Например: "Опубликовано"
} else {
echo 'Пост не найден.';
}
В этом примере мы используем функцию get_post_status_object()
для получения локализованного названия статуса, что может быть полезно для отображения на пользовательском интерфейсе.
Пример 3: Проверка статуса записи в цикле WordPress
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$status = get_post_status( get_the_ID() );
echo 'Статус текущего поста: ' . $status;
endwhile;
endif;
Этот код позволяет вам проверить и вывести статус текущего поста в цикле WordPress.
Заключение
Функция get_post_status()
является мощным инструментом для работы со статусами записей в WordPress. Она позволяет вам легко определять состояние записей и адаптировать функциональность вашего сайта в зависимости от статуса. Используйте эту функцию для улучшения управления контентом и взаимодействия с пользователями на вашем сайте.