Установите плагин Members , создайте роль для этих пользователей (или повторно используйте роль автора) и не предоставляйте им возможность publish_posts .
Вот скриншот того, как я обращаюсь с этим делом на одном из моих клиентов:

Обновление
Чтобы запретить публикацию правок, вам нужно подключиться к действию transition_post_status
и следить за изменениями. Это действие сообщает вам старый и новый статус сообщения и идентификатор сообщения:
add_action('transition_post_status', 'my_watcher', 10, 3);
function my_watcher($new_status, $old_status, $postid)
{
// Get post content etc.
$post = &get_post( $postid );
// Compare the content and/or the status, do something.
}
В моем случае, это было чрезмерно сложно, плюс мы боялись, что пользователи будут слишком опекаться.
Я только что создал виджет панели инструментов ¹, чтобы перечислить все изменения для администраторов и редакторов. Теперь пользователи видят свои правки сразу же вживую. Редакторы убирают вещи, если это необходимо. Работает отлично. Пользователи учатся делать хорошие изменения, которые больше не затрагиваются, и работа редакторов со временем снижается. :)
¹ Имейте в виду: все текстовые строки на немецком языке, возможно, вам придется их редактировать. У меня не было времени для I18n, извините.