Posts_Per_Page仅返回一个帖子

时间:2017-11-20 作者:Dharit Soni

function blog_post_home_shortcode() {
  $query = new WP_Query( array(
        \'post_type\' => \'post\',
        \'order\' => \'DESC\',
        \'post_status\' => \' publish\',
        \'posts_per_page\' => 3
    ));

  while ($query->have_posts()): $query->the_post();
      $blog = get_the_title();
  return $blog;
  endwhile;
  wp_reset_postdata();
}
add_shortcode(\'blogs_home\', \'blog_post_home_shortcode\');
在我设置的WP\\U查询中仅返回一个标题posts_per_page => 3 我想显示最近发布的帖子的所有3个标题。

2 个回复
最合适的回答,由SO网友:Pratik bhatt 整理而成

您可以按如下方式更新代码

   function blog_post_home_shortcode() {
  $query = new WP_Query( array(
        \'post_type\' => \'post\',
        \'order\' => \'DESC\',
        \'post_status\' => \' publish\',
        \'posts_per_page\' => 3
    ));

  while ($query->have_posts()): $query->the_post();
      $blog = get_the_title();
  echo $blog;
  endwhile;
  wp_reset_postdata();
}
add_shortcode(\'blogs_home\', \'blog_post_home_shortcode\');
请检查以上代码,并让我知道它是否适合您。

SO网友:Jacob Peattie

短代码需要return 它们的输出,否则无论何时处理包含它的内容,输出都会出现,而不是在内容内部实际出现快捷码的位置。

实现这一点的最简单方法是使用output buffering 要捕获输出,请使用ob_start() 然后返回它捕获的内容ob_get_clean():

function blog_post_home_shortcode() {
    ob_start();

    $query = new WP_Query( array(
        \'post_type\'      => \'post\',
        \'order\'          => \'DESC\',
        \'post_status\'    => \' publish\',
        \'posts_per_page\' => 3
    ) );

    while ($query->have_posts()): $query->the_post();
        the_title();
    endwhile;

    wp_reset_postdata();

    return ob_get_clean();
}
add_shortcode( \'blogs_home\', \'blog_post_home_shortcode\' );
请参见the documentation 更多信息(我的重点):

将短代码处理程序函数的返回值插入到post内容输出中,以代替短代码宏。Remember to use return and not echo - 任何回显的内容都将输出到浏览器,但不会显示在页面的正确位置。

结束

相关推荐

仅在生产服务器上使用GET_POSTS/orderby时,POST未按正确的字母顺序或ID顺序显示

我有一个页面,列出了一些自定义帖子,但它们没有按正确的字母顺序显示。作为测试,我还尝试按ID的顺序列出它们,但它们的顺序也不正确。当它被列为ID时,它们看起来好像分成了3组在4000年代的高位数字,低于200,然后是3000,这很奇怪。它在我的本地服务器上运行良好。在Wordpress后端也可以进行订购。当我在1&;上将站点移动到新的托管包时,问题似乎发生了;1、以前是否有服务器特定的订购问题?我制作了两个测试页面,显示了标题和ID(顺序错误)ID顺序的简单列表:http://www.realpat