I found that i just have to use
$post->post_name
instead of
$post->post_title
because $post->post_name holds the slug also the autogenerated if you save as draft without defining a title.
So the code would as follows
global $post;
$slug = $post->post_name;
echo "<script>alert ('".$title.")</script>";
$args = array(
'post_type' => 'traener',
'posts_per_page' => -1,
'orderby' => 'post_title', // meta_value',
'order' => 'ASC',
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) {
while ($my_query->have_posts()) : $my_query->the_post();
if ($selectedtrainer == get_the_title()) {
echo '<option value="'.esc_html( get_the_title() ).'"selected=selected>'.esc_html( get_the_title() ).'</option>';
} else {
echo '<option value="'.esc_html( get_the_title() ).'">'.esc_html( get_the_title() ).'</option>';
}
endwhile;
}
wp_reset_postdata();
$post->post_name = $slug;
Hope this can be of some use for others.