¿Es posible agregar nuevos roles de usuario?
Me pregunto si es posible crear un nuevo rol de usuario y darle capacidades limitadas especiales.
Me gustaría tener algunos usuarios que solo puedan agregar eventos al calendario. Deberían poder trabajar únicamente dentro de la taxonomía del calendario de eventos y editar/agregar sus entradas pero sin poder publicarlas, ¡algo como un colaborador pero más limitado!

Sí. WordPress tiene un sistema integrado robusto de Roles y Capacidades diseñado exactamente para lo que necesitas.
Para agregar un nuevo rol, usa la función add_role()
en el archivo functions.php
de tu tema o en un plugin de la siguiente manera:
$role = add_role( 'event_manager', 'Event Manager', array(
'read' => true, // True permite esa capacidad
) );
if ( null !== $role ) {
echo '¡Genial! ¡Nuevo rol creado!';
} else {
echo 'Oh... el rol event_manager ya existe.';
}
Para agregar una nueva capacidad, usa la función add_cap()
así:
$role = get_role( 'event_manager' );
$role->add_cap( 'manage_events' );

Debe notarse que solo necesitas añadir (y eliminar) un rol una vez. Se almacenan en la base de datos, no hay necesidad de hacerlo en cada carga de página. Además, en mi opinión, los roles son más adecuados para plugins.

Sí, definitivamente es posible con un plugin como Members. Puedes crear nuevos roles y capacidades, pero recuerda - necesitarás inyectar estas capacidades personalizadas en tu plugin. Lo que puedes hacer es instalar el plugin y luego modificar el rol de colaborador existente para que se ajuste a tus necesidades.
Para un control realmente granular, podrías combinarlo con el plugin Role Scoper también. ¡Gracias!

Además de soluciones de código puro, también sugeriría este plugin gratuito que he utilizado desde hace varios años y aún lo hago. Es realmente estable y confiable, y se actualiza activamente.
