There is no built-in capability of create_post
.
Update: There is a capability create_posts
but it's not well publicised and also has issues surrounding it which I'm afraid I don't have time to look into at the moment.
There are already answers that might help:
https://stackoverflow.com/a/3248103
https://wordpress.stackexchange.com/a/178059/94267
Original answer:
There is publish_posts
. You need to turn this off for those users. Removing this capability doesn't prevent a user or role from writing a draft post, but it does prevent them from publishing it, so it won't be seen outside the admin.
Currently (WP 4.6) posts have these capabilities associated with them:
edit_posts
edit_others_posts
publish_posts
read_private_posts
delete_posts
delete_private_posts
delete_published_posts
delete_others_posts
edit_private_posts
edit_published_posts
You probably want to disallow the *_private_*
capabilities for anyone but Admins too.