There is a meta capability
create_posts that is not documented but is used by WordPress to check before inserting the various “Add New” buttons and links. In your custom post type declaration, add capabilities (not to be confused with cap) and then set it to
do_not_allow as in the below snippet. Additionally, to map meta capabilities for custom post types we can use
map_meta_cap hook as it’s explain here: http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types
In the below snippet we will be using “feedback” custom post type as an example.