Как позволить вкладчикам создавать новую редакцию (проект), редактируя свои опубликованные сообщения

Я использую настраиваемый тип сообщения, чтобы вкладчики имели личную страницу на сайте.

Каждый раз, когда пользователь регистрируется на моем сайте, скрипт создает запись специального типа, в которой пользователь регистрации регистрируется как автор.

Для умеренных записей пользователей эта публикация публикуется редактором.

Я хотел бы, чтобы пользователи (участники) были:

  • не удалось добавить другие сообщения этого настраиваемого типа;
  • возможность редактировать уже опубликованную публикацию, автором которой они являются;
  • и их изменения должны быть одобрены редактором до опубликования.

Я использую редактор роли пользователя для управления ролями и возможностями.

Есть ли способ сделать это?

Solutions Collecting From Web of "Как позволить вкладчикам создавать новую редакцию (проект), редактируя свои опубликованные сообщения"

Используя редактор ролей или область ролей, вы можете установить вкладчиков для редактирования настраиваемого типа сообщений, но не публиковать, поэтому каждое изменение будет установлено как черновик до утверждения, а также для ограничения создания новых сообщений вашего пользовательского типа сообщений вы можете использовать мой плагин Bainternet Posts Пределы создания

Обновить

Для принудительного повторного утверждения изменений добавьте этот код

add_filter('wp_insert_post_data','re_aprove'); function re_aprove($data , $postarr){ global $current_user; get_currentuserinfo(); //check if current user is not admin if (!current_user_can('manage_options') && $postarr['post_type'] == "YOUR_CUSTOM_TYPE" ){ if ($data['post_status'] == "publish"){ $data['post_status'] = "pending"; } } return $data; } 

и измените YOUR_CUSTOM_TYPE на свое собственное имя типа сообщения.

Мой не работал, пока я не добавил «99», 2); до конца add_filter.

Вот ссылка, почему: http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data

 add_filter('wp_insert_post_data','re_aprove', '99', 2); function re_aprove( $data , $postarr ){ global $current_user; get_currentuserinfo(); //check if current user is not admin if (!current_user_can('manage_options') && $postarr['post_type'] == "candy-item" ){ if ($data['post_status'] = "publish"){ $data['post_status'] = "pending"; } } return $data; } 

наконец, я решил использовать плагин Revisionary , http://wordpress.org/extend/plugins/revisionary/, он используется для того, чтобы сделать то, что я прошу в названии темы

для более детального контроля над возможностями (с уже интегрированными ревизионистами) есть Role Scoper http://wordpress.org/extend/plugins/role-scoper/

первый из них очень прост в настройке, а второй требует гораздо больше практики, пользовательский интерфейс немного запутан, но он действительно мощный