Публиковать сообщения автора только с разрешения редактора?

Я запускаю блог с несколькими авторами, и я ищу решение без плагинов.

Роль пользователя-автора по умолчанию в WordPress может публиковать сообщения без какого-либо одобрения в отношении возможностей ролей WordPress Codex . Использование роли вкладчика для достижения моей цели невозможно, потому что роль вкладчика не может загружать изображения …

Можно ли установить для всех сообщений автора статус «черновик» – чтобы только редактор мог публиковать сообщения?

Добавьте следующий код в свои функции. Php:

function allow_contributor_uploads() { $contributor = get_role('contributor'); $contributor->add_cap('upload_files'); } if ( current_user_can('contributor') && !current_user_can('upload_files') ) { add_action('admin_init', 'allow_contributor_uploads'); } 

Это добавит upload_files к роли Contributor. Он должен запускаться только один раз; просто войдите в админ как пользователь с ролью Contributor. После того, как он успешно добавит эту возможность, вы можете удалить (или закомментировать) код, если хотите.

Чтобы удалить возможности upload_files и вернуть роль Contributor по умолчанию, используйте следующее:

 function deny_contributor_uploads() { $contributor = get_role('contributor'); $contributor->remove_cap('upload_files'); } if ( current_user_can('contributor') && current_user_can('upload_files') ) { add_action('admin_init', 'deny_contributor_uploads'); } 

Вариант плагина

Из предложений, сделанных Kaiser, вот плагин, который создаст новую пользовательскую роль с возможностями Contributor (редактирование, удаление и чтение сообщений), PLUS – возможность загрузки файлов.

 <?php /** * Plugin Name: Add Contributor Plus Role * Description: Activate plugin to create a user role with Contributor capabilities, PLUS upload_files. * Plugin URI: http://wordpress.stackexchange.com/questions/165951/publish-author-posts-only-with-editor-approval/165957#165957 * Version: 1.0 */ add_action( 'wp_loaded', 'add_new_contributor_plus_role'); function add_new_contributor_plus_role() { add_role( 'contributor_plus', __( 'Contributor Plus' ), array( 'edit_posts' => true, 'delete_posts' => true, 'read' => true, 'upload_files' => true ) ); } ?> 

Добавьте вышеуказанный код в /wp-content/plugins/add-contributor-plus-role/add-contributor-plus-role.php , или создайте роль / add-contributor-plus-role / add-contributor-plus-role. php и файл локально, добавьте в zip-файл и загрузите с помощью Plugins> Add New> Uploads. Не стесняйтесь изменять имя роли пользователя по своему желанию.

Включите плагин, и роль будет добавлена. Вы можете отключить плагин и удалить его; это не повлияет на вновь созданную роль пользователя.

Если вы передумали и хотите удалить роль пользователя Contributor Plus, используйте вместо строк add_role (через точку с запятой) следующую команду и активируйте плагин еще раз:

 remove_role( 'contributor_plus' );