Как работают статусы постов 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
Добавить комментарий

  1. zoritoler imol

    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.

    Ответить
    1. Алексей автор

      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

      Ответить
  2. vorbelutr ioperbir

    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.

    Ответить
    1. Алексей автор

      Please

      Ответить