Is there any way to disable the option of adding a new post under a Custom Post Type in WordPress (3.0)? I\'ve looked into labels and arguments but can\'t find anything that
There is a meta capability
create_posts
that is documented here and is used by WordPress to check before inserting the various 'Add New' buttons and links. In your custom post type declaration, addcapabilities
(not to be confused withcap
) and then set it tofalse
as below.register_post_type( 'custom_post_type_name', array( 'capability_type' => 'post', 'capabilities' => array( 'create_posts' => 'do_not_allow', // false < WP 4.5, credit @Ewout ), 'map_meta_cap' => true, // Set to `false`, if users are not allowed to edit/delete existing posts ));
You'll probably want to set
map_meta_cap
totrue
as well. Without it, you won't be able to access the posts' editing pages anymore.
May I ask why you want to do this?
I would at first have suggested changing the capabilities for your custom post type, but I don't think there's one that limits who can add posts, but only who can edit or publish them.
It looks a little dirty, but you could try unsetting the item in the $submenu
global;
function hide_add_new_custom_type()
{
global $submenu;
// replace my_type with the name of your post type
unset($submenu['edit.php?post_type=my_type'][10]);
}
add_action('admin_menu', 'hide_add_new_custom_type');