Автоустановка статуса опубликованных постов пользователем 28

Повесьте хук на событие «save_post», проверяйте роль редактирующего запись (здесь есть хорошая таблица соответствий прав пользователей их ролям http://codex.wordpress.org/Roles_and_Capabilities). Если пользователь ниже ранга редактора и запись имеет статус «опубликовано», меняйте статус записи на «pending» («на утверждении»).

function my_func_on_save_post($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return $post_id;
    }
    if (!current_user_can('edit_pages', $post_id) && get_post_status($post_id) == 'publish') {
        wp_update_post(array(
            'ID' => $post_id,
            'post_status' => 'draft'
        ));
    }
}
add_action('save_post', 'my_func_on_save_post');

Обсуждение на ru.stackoverflow.com

Плагин продвинутого редактирования прав User Role Editor

Стандартные статусы в WordPress

По умолчанию в WordPress имеется 8 статусов постов. Рассмотрим каждый из них:

  • publish — опубликованный пост. Доступен на сайте для просмотра каждому. Этот статус присваивается записям при нажатии на кнопку «Опубликовать».

кнопка публикации поста

  • future — пост, запланированный на публикацию в будущем. Для того, чтобы присвоить записи этот статус, устанавливаем время публикации, которое ещё не наступило и нажимаем кнопку «Запланировать».

кнопка запланированной публикации записи

  • draft — черновики (записи, которые ещё находятся в процессе написания и не готовы к публикации). Для создания черновика нажмите кнопку «Сохранить».

кнопка сохранения черновика

  • pending — пост, ожидающий проверки редактором или администратором. Все записи пользователей с ролью «Участник» отправляются на модерацию.

кнопка отправки поста на утверждение

  • private — посты, доступные для просмотра и редактирования только администраторам.

сохранить пост как личное

  • trash — посты, находящиеся в корзине. Для того, чтобы переместить пост в корзину, нажмите на ссылку «Удалить».

ссылка перемещения поста в корзину

  • auto-draft — черновики, которые создаются автоматически в процессе редактирования постов.
  • inherit — этот статус присваивается всем вложениям, а также редакциям записей.