grant a privilege for roles (for example editors) and higher

My wordpress theme has a custom post-type. Only editors (and higher) should be allowed to use this post type.

I did this with:

function add_capability($role,$cap) {
    $role_obj = get_role($role); // get the the role object
    $role_obj -> add_cap($cap); // add $cap capability to this role object
}

function set_cpt() {
    add_capability('editor', 'edit_cpt');
    add_capability('editor', 'read_cpt');
    add_capability('editor', 'delete_cpt');
    add_capability('editor', 'edit_cpt');
    add_capability('editor', 'edit_cpt');
    add_capability('editor', 'publish_cpt');
    add_capability('editor', 'read_cpt');
}
add_action('init', 'set_cpt');

(I think) in WordPress 3.1 this was enough – all editors and higher had the right to use the post-type.

Now, in WordPress 3.2 only editors have the right to use the post-type.

Is there a way to grant privileges to role X and higher or would I have to mention every role?

Thank you!

[edit]

actually I found out that this never worked before. But is there another way to do it?

1 Answer
1

If you use the Members plugin, you can set it up like you want. It also has the possibility to add custom roles (your edit_cpt and so on)

also a lot of plugins also work that way:

<?php if ( current_user_can('manage_options') ) { do_something(); } ?>

Leave a Comment