Change WordPress user roles and capabilities › Forums › Bug Reports › Doesn't seem to work. › Reply To: Doesn't seem to work.
About custom post type capabilities:
Custom post type is defined with special parameter ‘capability type’. If custom post type uses the same capability type as the WordPress built-in ‘post’ does, that is ‘post’, then this custom post type is protected by the same capabilities set: edit_posts, ‘delete_posts’, ‘publish_posts’, etc.
Any capability, like ‘edit_posts’ is granted to a role, not to a custom post type, or WordPress built-in type post. Capabilities groups to the left in a User Role Editor just shows a kind of permissions required for access to the functionality related to a group. Thus if few post types uses the same capability type you change access to all of them at once when: revoke ‘edit_post’ from a role. It does not matter which group you use to find ‘edit_posts’ and turn OFF its checkbox.
If you need manage access to all custom post types separately there is a special option at “Settings->User Role Editor”: “force custom post types use their own capabilities”.
You have to aware that if you turn this option ON, you need to check roles if they have needed capabilities, e.g. ‘edit_attachments’, etc., as every post type will get its own capability type: post type ‘video’ – ‘edit_videos’, ‘project’: ‘edit_projects’, etc.