我创建了一个函数(在function.php中),允许我将不同类别的其他循环放入页面:
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\');
不幸的是,不管我把短代码放在哪里
[summary category="cats" posts="3"]
它始终显示在页面内容之前。换句话说,新的WP\\u查询是在页面内容发生任何其他事情之前处理的。如何使循环准确地显示在后端放置短代码的位置(例如,页面上的内容之间)?
最合适的回答,由SO网友:Shazzad 整理而成
使用缓冲区可以简单地使用ob_start()
&;ob_get_clean()
.
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\');