Записи в WordPress могут иметь один из нескольких статусов. Статус конкретной записи определяет, как WordPress обрабатывает эту запись. Например, общедоступным записям, которые видны всем, присваивается статус publish, а черновикам — статус draft. Статус хранится в поле post_status таблицы wp_posts.
WordPress предоставляет 8 встроенных статусов, которые можно использовать. WordPress 3.0 добавил возможность создавать собственные пользовательские статусы записей и использовать их различными способами.
Рабочий процесс
WordPress предоставляет встроенные функции, позволяющие некоторым пользователям (в зависимости от их ролей и возможностей) проверять содержимое, отправленное на сайт, до его публикации. Это обычно называется “рабочим процессом”. Функции рабочего процесса WordPress используют значение поля post_status записи, чтобы определить, на каком этапе рабочего процесса в данный момент находится запись.
Большинство пользователей уже знакомы как минимум с двумя состояниями рабочего процесса:
- Опубликованным записям, видимым всем (включая пользователей, вышедших из системы), присваивается
publishстатус. - Черновикам, которые ещё не опубликованы, присваивается
draftстатус.
Внутри WordPress устанавливает для записи статус publish, когда вы нажимаете кнопку “Опубликовать”, и устанавливает статус draft, когда вы нажимаете кнопку “Сохранить черновик”. Аналогично, если на вашем сайте есть пользователи, которым предоставлена edit_posts возможность, но не предоставлена publish_posts возможность, то при создании новой записи WordPress покажет кнопку “Отправить на проверку” вместо кнопки “Опубликовать”. В этом случае WordPress присваивает созданной таким пользователем записи pending статус, когда пользователь нажимает эту кнопку.
Статус записи также может быть установлен на экране администрирования и экране добавления новых записей любым пользователем, обладающим необходимой возможностью для присвоения записи указанного статуса. Внутри все эти записи хранятся в одном месте (в таблице wp_posts) и различаются по столбцу с именем post_status.
Статусы по умолчанию
По умолчанию WordPress использует 8 основных статусов записей.
Опубликовано
Видно всем. (publish)
Будущее
Запланировано к публикации в будущем. (future)
Черновик
Незавершённая запись, видимая любому пользователю с соответствующей ролью пользователя. (draft)
На утверждении
Ожидает публикации пользователем с возможностью publish_posts (обычно пользователем, которому присвоена роль редактора ). (pending)
Личное
Видно только пользователям WordPress с уровнем администратора. (private)
Корзина
Записям в корзине присваивается статус trash. (trash)
Автоматический черновик
Редакции, которые WordPress автоматически сохраняет во время редактирования. (auto-draft)
Наследуемое
Используется с дочерней записью (например, с вложениями и редакциями), чтобы определить фактический статус на основе родительской записи. (inherit)
Пользовательский статус
ВНИМАНИЕ:
Эта функция НЕ добавляет зарегистрированный статус записи на экран администрирования. Эта возможность будет реализована в будущем. Обратитесь к задаче Trac №12706.
Рассмотрите возможность использования хука действия post_submitbox_misc_actions для добавления этого параметра.
Пользовательский статус — это статус записи, который вы определяете самостоятельно.
Добавление пользовательского статуса в WordPress выполняется с помощью функции register_post_status(). Эта функция позволяет определить статус записи и способ его работы в WordPress.
Вот простой пример добавления пользовательского статуса записи под названием “Unread”:
function custom_post_status(){
register_post_status( 'unread', array(
'label' => _x( 'Unread', 'post' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Unread (%s)', 'Unread (%s)' ),
) );
}
add_action( 'init', 'custom_post_status' );
Ресурсы
Связанные материалы
Документация по коду
- Функция: get_post_status() – Получение статуса записи на основе ID записи.