Haben mehrere Schleifen auf einer Seite nach / zwischen Seiteninhalt angezeigt

Ich habe eine function (in function.php) erstellt, mit der ich zusätzliche Loops für verschiedene Kategorien in Seiten einfügen kann:

function custom_summary($atts) { extract(shortcode_atts(array( "category" => "", "posts" => "" ), $atts)); $my_query = new WP_Query("category_name=$category&posts_per_page=$posts"); while ($my_query->have_posts()) : $my_query->the_post(); // Do all the things. endwhile; } add_shortcode('summary', 'custom_summary'); 

Leider, egal wo ich den Shortcode einstelle [summary category="cats" posts="3"] wird immer vor dem Inhalt der Seite angezeigt. Mit anderen Worten, die neue WP_Query wird verarbeitet, bevor irgendetwas anderes mit dem Inhalt der Seite passiert. Wie kann ich die Schleife genau dort erscheinen lassen, wo ich den Shortcode im Backend platziert habe (zB zwischen den Inhalten auf der Seite)?

Solutions Collecting From Web of "Haben mehrere Schleifen auf einer Seite nach / zwischen Seiteninhalt angezeigt"

Verwenden Sie buffer, um das einfach mit ob_start() & ob_get_clean() zu tun.

 function custom_summary($atts) { extract(shortcode_atts(array( "category" => "", "posts" => "" ), $atts)); ob_start(); $my_query = new WP_Query("category_name=$category&posts_per_page=$posts"); while ($my_query->have_posts()) : $my_query->the_post(); // Do all the things. endwhile; wp_reset_postdata(); return ob_get_clean(); } add_shortcode('summary', 'custom_summary');