The previous answer only hides the menu item with CSS, and as @ezejielDFM points out, it won't stop users from actually being able to add posts.
Instead, when registering your custom post type, you need to set the create_posts
value to do_not_allow
(or false
in Wordpress versions below 4.5) and crucially set the map_meta_cap
to true
.
register_post_type( 'custom_post_type_name', array(
'capability_type' => 'post',
'capabilities' => array(
'create_posts' => 'do_not_allow', // Prior to Wordpress 4.5, this was false
),
'map_meta_cap' => true, // With this set to true, users will still be able to edit & delete posts
));
If map_meta_cap
is left out, it defaults to false
and although you've disabled the ability to Add New posts, you also won't be able to edit or delete existing ones either, so make sure to include that value.
Full credit goes to this answer on Stack Overflow.