问题 WordPress:如何在搜索结果中获取$ wp_query的所有帖子?


我必须脑子死了,我无法弄清楚如何获得所有帖子 $wp_query 这样我就可以为搜索结果创建一个小部件过滤器。

$wp_query->posts 只给我一些将要显示在列表中的帖子,如果 posts_per_page 设置为10,我只获得10个帖子。我需要它们所以我可以对它们进行排序并根据搜索结果中的所有帖子显示过滤器。

有任何想法吗?


7723
2018-05-29 14:01


起源

您可以尝试使用: generatewp.com/wp_query - Ron van der Heijden


答案:


将args中的posts_per_page参数设置为-1,这将返回wp_posts表中的所有帖子。例如

$args = array(
    'posts_per_page'   => -1,
    'post_type'        => 'post',
);
$the_query = new WP_Query( $args );

现在你可以循环并获得帖子

while ( $the_query->have_posts() ) {
  // go ahead
}

13
2018-05-29 14:30



是的,但这将显示页面上的所有帖子。我想保持分页。但我也希望能够对结果进行过滤。 - CodingCaio
但你不能通过相同的WP_Query做到这一点,你需要为此设置单独的WP_Query。 - Gajendra Singh
好,谢谢!我会尝试执行另一个查询。 - CodingCaio


根据搜索结果中的所有帖子显示过滤器。

     <?php

    /*pass your search string here example like this ( 's'=>'test' ) */
   $args=array('s'=>'test','order'=> 'DESC', 'posts_per_page'=>get_option('posts_per_page'));

   $query=new WP_Query($args);

    if( $query->have_posts()): 

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

     {
     echo $post->post_title;
     echo $post->post_content;
     }

    endwhile; 
    else:
    endif;
  ?>

0
2018-05-31 12:03