I wonder if it is possible to create a new user role and give him special limited abilities?

I'd like to have some users who can only add events onto the calendar. They should only be able to work within events calendar taxonomy and edit add their posts but not publish them something like contributor but more limited!


4 Answers 4


Yes. WordPress has robust built-in Roles and Capabilities system desgined to do exactly what you are looking for.

To add a new role, use the add_role() function in your theme's functions.php or a plug-in like so:

$role = add_role( 'event_manager', 'Event Manager', array(
    'read' => true, // True allows that capability
) );

if ( null !== $role ) {
    echo 'Yay!  New role created!';
} else {
    echo 'Oh... the event_manager role already exists.';


To add a new capability, use the add_cap() function like this:

$role = get_role( 'event_manager' );
$role->add_cap( 'manage_events' );
  • 2
    It should be noted that you only need to add (and remove) a role once. They get stored in the database, no need to do it on every page load. Also, roles are better suited to plugins, in my opinion. Nov 7, 2012 at 17:33
  • Just wondering, shouldn't we create a function and use a hook add_action('huh-which-one'
    – alex
    Sep 8, 2014 at 10:01

Yes, definitely possible with a plugin like Members. You can create new roles and capabilities, but remember - you'll actually need inject these custom capabilities into your plugin. What you may want to do is just install the plugin and then modify the existing contributor role to suite your needs.

For really granular control, you could bundle that with the Role Scoper plugin as well. Thanks!


Add the below code in functions.php file

    __( 'Custom Editor' ),
        'read'         => true,  // true allows this capability
        'edit_posts'   => true,

Replace Custom Editor with your role name


Besides pure code solutions, I would also suggest this free plugin I used since several years ago, and still. It's really stable and reliable, and actively updated.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.