The solution I found is in the pre_get_posts function:
I added:
if ( is_user_logged_in() ) {
$query->set( 'post_status', array('private', 'publish'));
}
Full code for function:
/*------- START add webinars custom post type to the main query loop----------*/
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
if( is_category() ) {
$post_type = get_query_var('post_type');
// show private posts to admins too.
if ( is_user_logged_in() ) {
$query->set( 'post_status', array('private', 'publish'));
}
if($post_type)
$post_type = $post_type;
else
$post_type = array('nav_menu_item', 'post', 'webinars'); // don't forget nav_menu_item to allow menus to work!
$query->set('post_type',$post_type);
return $query;
}
}
/*------- END add webinars custom post type to the main query loop----------*/