在页面内容之后/之间显示页面上的多个循环

时间:2014-01-05 作者:Christian Macht

我创建了一个函数(在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查询是在页面内容发生任何其他事情之前处理的。如何使循环准确地显示在后端放置短代码的位置(例如,页面上的内容之间)?

1 个回复
最合适的回答,由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\');

结束

相关推荐

How do I make a shortcode?

边走边学。。。我已经构建了这个功能,但我需要它作为一个短代码。我该怎么做?$args = array( \'taxonomy\' => \'product_cat\' ); $terms = get_terms(\'product_cat\', $args); $count = count($terms); $i=0; if ($count > 0) { $cape_list = \'<p class=\"my_term-archive\