简体   繁体   中英

WordPress: How do I get all posts from $wp_query in the search results?

I must be brain dead, I can't figure out how to get ALL posts from the $wp_query so that I can create a widget filter for the search results.

$wp_query->posts only gives me the posts that are going to be displayed in the list, so, if posts_per_page is set to 10, I only get 10 posts. I need them all so I can sort them and display a filter based on all posts from the search results.

Any ideas?

Set posts_per_page parameter in args to -1, this will return all posts from wp_posts table. for example

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

Now you can loop through and get posts

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

Display a filter based on all posts from the search results.

     <?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;
  ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM