Have used this for user-created content that is not for public.
function force_type_private($post) { if ($post['post_type'] == 'my_post_type') $post['post_status'] = 'private'; return $post; } add_filter('wp_insert_post_data', 'force_type_private');