PHP Shortcode – 500 Fehler

Ich habe mit Hilfe dieses Artikels an einem Shortcode gearbeitet: http://code.tutsplus.com/tutorials/create-a-shortcode-to-list-posts-with-multiple-parameters–wp-32199 . Ich habe versucht zu tun, was der Artikel sagt, aber ich habe versucht, eine while-Schleife einzubeziehen. Das Problem ist, dass die Seite beim Einfügen in die functions.php im Designeditor abstürzt und den internen Servererrors 500 zurückgibt.

Mein Code sieht so aus:

add_shortcode('lande_galleri', 'lande_galleri_parameter'); function lande_galleri_parameter($atts) { ob_start(); //Definer attributter extract( shortcode_atts( array ( 'post_type' => 'embm_beer', 'order' =>'date', 'orderby' => 'title', 'posts' => -1, 'land' => '', ), $atts)); //Definer parametre $options = array( 'post_type' => $type, 'order' => $order, 'orderby' => $orderby, 'posts_per_page' => $posts, 'land' => $land, ); $query = new WP_Query($options); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();{ ?>  <?php endwhile; wp_reset_query(); wp_reset_postdata(); $myvariable = ob_get_clean(); return $myvariable; } } 

Kann jemand das Problem sehen?

Der Punkt des Shortcodes: Ich habe einen benutzerdefinierten Post-Typ mit einer Taxanomie. Ich möchte das Shortcode-Attribut “Land” haben, und wenn die Eingabe beispielsweise “Deutschland” ist, möchte ich, dass die Datei alle Posts innerhalb der Kategorie erhält und sie die Post-Thumbnails anzeigen.

Solutions Collecting From Web of "PHP Shortcode – 500 Fehler"

Wie @s_ha_dum sagte, diese albtraumhaften “Template-Tag” -Stil-Bedingungen machten es schwierig, diese Fehler zu finden. Bitte benutzen Sie define( 'WP_DEBUG', true ); in Ihrer wp-config-Datei, um diese PHP-Fehler während der Entwicklung zu drucken.

 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 .= ''; } } wp_reset_postdata(); return $$out; } add_shortcode('lande_galleri', 'lande_galleri_parameter');