- Что такое wp:status?
- Разбор стандартных статусов
- Создание пользовательских статусов
- Пример: Регистрация нового статуса «На проверке»
- Добавление пользовательских статусов в интерфейс админки
- Работа с API для статусов постов
- Проверка статусов в шаблонах:
- Работа с REST API:
- Типичные ошибки и их решение
- Примеры практического использования
- Заключение
В WordPress статусы постов (‘post statuses’) играют ключевую роль в управлении содержимым сайта. Они позволяют определить, в каком состоянии находится запись – готова ли она для публикации, ожидает ли модерации или сохранена как черновик. Правильное понимание статусов помогает эффективно работать с контентом и улучшить процесс администрирования.
Эта статья предназначена для тех, кто хочет глубже разобраться в статусах постов WordPress, узнать, как они работают, и научиться настраивать их под свои задачи.
Что такое wp:status
?
Статусы постов – это свойство записи, которое определяет её видимость и доступность на сайте. В базе данных WordPress эта информация хранится в поле post_status
таблицы wp_posts
. Например, опубликованный пост будет иметь статус publish
, а черновик – draft
.
WordPress включает несколько стандартных статусов, таких как:
publish
– опубликованная запись.draft
– черновик.pending
– ожидает модерации.private
– доступен только авторизованным пользователям.future
– запланированная публикация.trash
– запись удалена.auto-draft
– автоматически созданный черновик.inherit
– статус вложений (например, медиафайлов).
Разбор стандартных статусов
Рассмотрим каждый статус подробно:
publish
– опубликованная запись- Видима всем посетителям сайта.
- Изменения вступают в силу сразу после сохранения.
- Используется для постов, которые полностью готовы и одобрены.
draft
– черновик- Запись сохраняется как незавершённая работа.
- Доступна только автору и администраторам.
- Удобно для подготовки материалов.
pending
– ожидает модерации- Используется в многоавторских блогах.
- Автор пишет запись, но для публикации требуется одобрение редактора.
private
– приватный пост- Доступен только авторизованным пользователям с нужными правами.
- Полезен для внутреннего контента, например, инструкций для команды.
future
– запланированная публикация- Позволяет автоматически публиковать записи в заданное время.
- Используется для контент-планирования.
trash
– удалённые записи- Перемещённые в корзину записи можно восстановить или окончательно удалить.
- Записи в корзине автоматически удаляются через 30 дней.
auto-draft
– автоматический черновик- Создаётся системой при создании новой записи.
- Предназначен для предотвращения потери данных.
inherit
– вложения- Используется для медиафайлов.
- Статус наследуется от родительского поста.
Создание пользовательских статусов
WordPress позволяет добавлять собственные статусы постов. Это полезно для специфичных задач, таких как “Архивирован” или “На проверке”.
Пример: Регистрация нового статуса «На проверке»
add_action('init', function() {
register_post_status('review', [
'label' => 'На проверке',
'public' => true,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop('На проверке (%s)', 'На проверке (%s)'),
]);
});
После регистрации статус можно назначить программно или через интерфейс админки (с дополнительной настройкой).
Добавление пользовательских статусов в интерфейс админки
Чтобы пользовательский статус появился в выпадающем списке админки, используйте следующий код:
add_filter('display_post_states', function($post_states, $post) {
if ($post->post_status === 'review') {
$post_states['review'] = 'На проверке';
}
return $post_states;
}, 10, 2);
Работа с API для статусов постов
WordPress предоставляет функции для получения и установки статусов постов:
- Получение статуса:
get_post_status($post_id)
возвращает статус поста. - Установка статуса:
wp_update_post(['ID' => $post_id, 'post_status' => 'draft']);
.
Проверка статусов в шаблонах:
if (get_post_status($post_id) === 'publish') {
echo 'Этот пост опубликован';
}
Работа с REST API:
Статусы постов можно использовать через REST API. Пример запроса:
GET https://example.com/wp-json/wp/v2/posts?status=draft
Типичные ошибки и их решение
- Посты, застрявшие в статусе
auto-draft
- Решение: Удаляйте лишние черновики через админку или программно с помощью WP-CLI.
- Ошибки при публикации запланированных постов
- Причина: Сервер некорректно обрабатывает CRON-задачи.
- Решение: Проверьте настройку WP_CRON и активируйте пинг для сайта.
- Неправильное использование пользовательских статусов
- Решение: Всегда регистрируйте статусы корректно и добавляйте их в интерфейс админки.
Примеры практического использования
- Ведение черновиков статей
- Используйте статус
draft
для подготовки материалов, которые ещё не готовы к публикации.
- Используйте статус
- Модерация контента
- Статус
pending
позволяет эффективно модерировать записи в блогах с несколькими авторами.
- Статус
- Планирование публикаций
- Запланируйте публикацию статей на будущее с помощью статуса
future
.
- Запланируйте публикацию статей на будущее с помощью статуса
- Архивирование старого контента
- Создайте пользовательский статус “Архив” для материалов, которые больше не актуальны.
Заключение
Статусы постов WordPress – мощный инструмент для управления контентом. Их правильное использование упрощает администрирование и помогает организовать рабочие процессы. Вы можете использовать встроенные статусы или создавать свои собственные для решения специфических задач. Экспериментируйте и настраивайте WordPress под ваши потребности!
Пример задачи для практики: создайте пользовательский статус “Архивирован”, добавьте его в интерфейс админки и настройте отображение архивированных записей на отдельной странице сайта.
With havin so much written content do you ever run into any problems of plagorism or copyright violation? My blog has a lot of exclusive content I’ve either created myself or outsourced but it seems a lot of it is popping it up all over the internet without my agreement. Do you know any methods to help reduce content from being ripped off? I’d genuinely appreciate it.
Yes, I regularly encounter this. And in the near future I plan to write a series of articles dedicated to this problem and how to deal with it
I’m also commenting to make you be aware of of the brilliant discovery my child found using yuor web blog. She realized a lot of details, not to mention what it is like to possess an incredible helping style to make a number of people with no trouble have an understanding of selected specialized subject areas. You actually exceeded our own expectations. Many thanks for showing these important, healthy, revealing and easy guidance on that topic to Sandra.
Please