Have you read Custom Status on codex.wordpress.org/Post_Status?
NOTICE:
This function does NOT add the registered post status to the admin panel. This functionality is pending future development. Please refer to Trac Ticket #12706. Consider the action hookpost_submitbox_misc_actions
for adding this parameter.
Adding a custom status to WordPress is done via the register_post_status()
function. This function allows you to define the post status and how it operates within WordPress.
function custom_post_status(){
register_post_status( 'unread', array(
'label' => _x( 'Unread', 'post' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Unread <span class="count">(%s)</span>', 'Unread <span class="count">(%s)</span>' ),
) );
}
add_action( 'init', 'custom_post_status' );
Although it doesn’t look like custom post status is supported in the admin publish metabox but maybe in a future patch.