Как работают статусы постов WordPress: подробное руководство

Статусы постов WordPress WordPress

В WordPress статусы постов (‘post statuses’) играют ключевую роль в управлении содержимым сайта. Они позволяют определить, в каком состоянии находится запись – готова ли она для публикации, ожидает ли модерации или сохранена как черновик. Правильное понимание статусов помогает эффективно работать с контентом и улучшить процесс администрирования.

Эта статья предназначена для тех, кто хочет глубже разобраться в статусах постов WordPress, узнать, как они работают, и научиться настраивать их под свои задачи.

Что такое wp:status?

Статусы постов – это свойство записи, которое определяет её видимость и доступность на сайте. В базе данных WordPress эта информация хранится в поле post_status таблицы wp_posts. Например, опубликованный пост будет иметь статус publish, а черновик – draft.

WordPress включает несколько стандартных статусов, таких как:

  • publish – опубликованная запись.
  • draft – черновик.
  • pending – ожидает модерации.
  • private – доступен только авторизованным пользователям.
  • future – запланированная публикация.
  • trash – запись удалена.
  • auto-draft – автоматически созданный черновик.
  • inherit – статус вложений (например, медиафайлов).

Разбор стандартных статусов

Рассмотрим каждый статус подробно:

  1. publish – опубликованная запись
    • Видима всем посетителям сайта.
    • Изменения вступают в силу сразу после сохранения.
    • Используется для постов, которые полностью готовы и одобрены.
  2. draft – черновик
    • Запись сохраняется как незавершённая работа.
    • Доступна только автору и администраторам.
    • Удобно для подготовки материалов.
  3. pending – ожидает модерации
    • Используется в многоавторских блогах.
    • Автор пишет запись, но для публикации требуется одобрение редактора.
  4. private – приватный пост
    • Доступен только авторизованным пользователям с нужными правами.
    • Полезен для внутреннего контента, например, инструкций для команды.
  5. future – запланированная публикация
    • Позволяет автоматически публиковать записи в заданное время.
    • Используется для контент-планирования.
  6. trash – удалённые записи
    • Перемещённые в корзину записи можно восстановить или окончательно удалить.
    • Записи в корзине автоматически удаляются через 30 дней.
  7. auto-draft – автоматический черновик
    • Создаётся системой при создании новой записи.
    • Предназначен для предотвращения потери данных.
  8. 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

Типичные ошибки и их решение

  1. Посты, застрявшие в статусе auto-draft
    • Решение: Удаляйте лишние черновики через админку или программно с помощью WP-CLI.
  2. Ошибки при публикации запланированных постов
    • Причина: Сервер некорректно обрабатывает CRON-задачи.
    • Решение: Проверьте настройку WP_CRON и активируйте пинг для сайта.
  3. Неправильное использование пользовательских статусов
    • Решение: Всегда регистрируйте статусы корректно и добавляйте их в интерфейс админки.

Примеры практического использования

  1. Ведение черновиков статей
    • Используйте статус draft для подготовки материалов, которые ещё не готовы к публикации.
  2. Модерация контента
    • Статус pending позволяет эффективно модерировать записи в блогах с несколькими авторами.
  3. Планирование публикаций
    • Запланируйте публикацию статей на будущее с помощью статуса future.
  4. Архивирование старого контента
    • Создайте пользовательский статус “Архив” для материалов, которые больше не актуальны.

Заключение

Статусы постов WordPress – мощный инструмент для управления контентом. Их правильное использование упрощает администрирование и помогает организовать рабочие процессы. Вы можете использовать встроенные статусы или создавать свои собственные для решения специфических задач. Экспериментируйте и настраивайте WordPress под ваши потребности!

Пример задачи для практики: создайте пользовательский статус “Архивирован”, добавьте его в интерфейс админки и настройте отображение архивированных записей на отдельной странице сайта.

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( Пока оценок нет )
Web-Revenue.ru
Добавить комментарий