I have declared a new post type and it is visible on the admin menu: function create_post_type() {
register_post_type( 'employer_fm',
array(
'labels' => array(
'name' => _x('Employer', 'Employers'),
'singular_name' => _x('Employer ', 'domain'),
),
'public' => true,
'capability_type' => array('employer','employers','adminstrator'),
'supports' => array('title','author','thumbnail','page-attributes'),
'capabilities' => array(
'read_post' => 'read_employer',
'publish_posts' => 'publish_employer',
'edit_posts' => 'edit_employers',
'edit_others_posts' => 'edit_others_employer',
'delete_posts' => 'delete_employer',
'delete_others_posts' => 'delete_others_employer',
'edit_others_pages' => 'edit_others_employer_page',
'read_private_posts' => 'read_private_employer',
'edit_post' => 'edit_employer',
'delete_post' => 'delete_employer',
),
)
);
}
I have also declared roles:
$result = add_role(
'employer',
__( 'Employer' ),
array(
'edit_employer' => true,
'edit_employers' => true,
'publish_employer' => true,
'read_employer' => true,
'delete_employer'=> true,
'edit_others_employer' => false,
'delete_others_employer' => false,
'edit_others_employer_page' => false
)
);
$role = get_role( 'administrator' );
$role->add_cap( 'edit_employer' );
$role->add_cap( 'read_employer' );
$role->add_cap( 'delete_employer' );
$role->add_cap( 'edit_employers' );
$role->add_cap( 'publish_employer' );
if 'map_meta_cap' => true,
Users can only view and publish posts (including admin) and if it it not set all users can edit all employer type posts.
How can I prevent employer
user types from editing others posts?