Функция get_post_statuses()
в WordPress предназначена для получения списка всех поддерживаемых статусов постов. Это позволяет разработчикам легко получать доступ к статусам, которые могут быть использованы в процессе работы с записями на сайте.
get_post_statuses(): string[]
get_post_statuses()
возвращает массив статусов записей, предоставляя разработчикам информацию о допустимых значениях статусов, которые могут быть использованы в WordPress. Этот список включает в себя такие статусы, как «черновик», «ожидание» и «опубликовано».
Возвращаемое значение
string[]
— Массив меток статусов, ключи которого соответствуют их названиям.
Примечания
- Функция возвращает жестко закодированный список статусов, который может не включать некоторые статусы, такие как «будущий» (future).
- Для получения полного списка статусов, включая пользовательские статусы, следует использовать функцию
get_post_stati()
.
Пример 1: Получение стандартных статусов записей
В этом примере мы получим стандартные статусы записей и выведем их на экран:
$statuses = get_post_statuses();
foreach ($statuses as $key => $label) {
echo esc_html($key) . ': ' . esc_html($label) . '<br>';
}
/* $statuses будет содержать такой массив:
Array
(
[draft] => Черновик
[pending] => На рассмотрении
[private] => Личное
[publish] => Опубликовано
)
*/
Пример 2: Вывод статусов в виде списка
Можно вывести статусы в виде упорядоченного списка:
$statuses = get_post_statuses();
echo '<ul>';
foreach ($statuses as $key => $label) {
echo '<li>' . esc_html($label) . ' (' . esc_html($key) . ')</li>';
}
echo '</ul>';
Пример 3: Получение статусов и использование их в логике
Допустим, вы хотите проверить статус записи и вывести соответствующее сообщение:
$statuses = get_post_statuses();
$current_status = 'draft'; // Пример текущего статуса
if (array_key_exists($current_status, $statuses)) {
echo 'Текущий статус: ' . esc_html($statuses[$current_status]);
} else {
echo 'Статус не найден.';
}
Примечание о пользовательских статусах
Для получения всех статусов, включая те, что были добавлены с помощью функции register_post_type()
, можно использовать следующий код:
add_action('init', function () {
global $wp_post_statuses;
var_dump($wp_post_statuses);
/* Вывод может содержать:
array(
"publish",
"future",
"draft",
"pending",
"private",
"trash",
"auto-draft",
"inherit",
"custom_status" // Пример пользовательского статуса
)
*/
}, PHP_INT_MAX);
Заключение
Функция get_post_statuses()
является удобным инструментом для разработчиков, позволяющим получать информацию о стандартных статусах записей в WordPress. Это особенно полезно при создании интерфейсов управления контентом, где важно учитывать статусы записей. Если вам нужно работать с пользовательскими статусами, не забудьте использовать get_post_stati()
, чтобы получить полный список доступных статусов в вашей установке WordPress.