Возможно ли добавить новые роли пользователей?
Интересно, возможно ли создать новую роль пользователя и дать ему специальные ограниченные возможности?
Я хотел бы иметь некоторых пользователей, которые могут только добавлять события в календарь. Они должны иметь возможность работать только в рамках таксономии календаря событий и редактировать свои записи, но не публиковать их - что-то вроде роли участника, но с более ограниченными правами!

Да. WordPress имеет надежную встроенную систему Ролей и Возможностей, которая как раз предназначена для решения подобных задач.
Чтобы добавить новую роль, используйте функцию add_role()
в файле functions.php
вашей темы или в плагине следующим образом:
$role = add_role( 'event_manager', 'Менеджер мероприятий', array(
'read' => true, // Значение true разрешает данную возможность
) );
if ( null !== $role ) {
echo 'Ура! Новая роль создана!';
} else {
echo 'Ой... роль event_manager уже существует.';
}
Чтобы добавить новую возможность, используйте функцию add_cap()
вот так:
$role = get_role( 'event_manager' );
$role->add_cap( 'manage_events' );

Стоит отметить, что вам нужно добавить (или удалить) роль только один раз. Они сохраняются в базе данных, поэтому нет необходимости делать это при каждой загрузке страницы. Также, на мой взгляд, роли больше подходят для плагинов.

Да, это определенно возможно с помощью плагина, такого как Members. Вы можете создавать новые роли и права, но помните - вам действительно нужно будет внедрить эти пользовательские права в ваш плагин. Возможно, вам стоит просто установить плагин, а затем изменить существующую роль участника (contributor) под ваши нужды.
Для действительно детального контроля вы можете использовать его вместе с плагином Role Scoper. Спасибо!

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