PHP Shortcode – 500 error

Like @s_ha_dum said, those nightmarish “template tag” style conditionals made it hard to find those errors. Please use define( 'WP_DEBUG', true ); in your wp-config file to print those PHP errors while you are developing.

function lande_galleri_parameter($atts) {
    extract( shortcode_atts( array (
        'post_type' => 'embm_beer',
        'order' =>'date',
        'orderby' => 'title',
        'posts' => -1,
        'land' => '',
    ), $atts));

    $options = array(
        'post_type' => $post_type,
        'order' => $order,
        'orderby' => $orderby,
        'posts_per_page' => $posts,
        'land' => $land,
    );

    $out="";

    $query = new WP_Query($options);

    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            $out .= '<div class="findoel"><a href="' . get_permalink( get_the_ID() ) . '" title="' . esc_attr( get_the_title() ) . '">';
            $out .= get_the_post_thumbnail( get_the_ID(), 'medium');
            $out .= '</a></div>';
        }
    }
    wp_reset_postdata();
    return $$out;
}
add_shortcode('lande_galleri', 'lande_galleri_parameter');