Have more search results show up
the question I have is, is it possible to make more search results show up when someone searches for a keyword on my wordpress only 3 results will show up. I am guessing only 3 will show up because I have my wordpress set on the main page so that only 3 posts show at one time.
Is there any way to set the search results higher so more results will show up without changing the amount of posts that shows up on my main page?
Good point. I never noticed that because I have 10 posts on my main page. A bit of searching gave me this and it works:
Assuming your theme has got a search.php, open it up, find this..
<?php if (have_posts()) : ?>
Above that, place this code..
<?php query_posts(‘showposts=999999’); ?>
Of course if you want the search the results less then nearly a million then change the number… 😉
Tested as working. CREDIT t31os_
EDIT: it does NOT work for me on WP 2.7.1. The search results produces the set number of newest posts only. I will search further. To be more precise: if the search word does not exist, I get “nothing found” but if the searchword exists, I get the set number of newest posts.
Though it’s a bit outdated, Custom Query String Reloaded lets you set different numbers of posts displayed for searches, categories, etc. I use it and it works fine under 2.8.4.
Thanks songdogtech. For the moment I will stick to my 10 results since also my previous-next-posts-links work fine on the search result page. Don’t want too much scrolling.
Maybe jwild can use it. I also asked t31os_ in the other topic why it did not work for me.
I just tried that and when I searched it will bring up every result/post even if the keyword that I searched for was not in that post. lol.
showposts=-1… (minus one should be “all”)..
You should be able to over-ride the total amount of posts returned for any page, providing you set the parameters for the current query (which is what you’re essentially doing by placing a query_posts call in).
Unless you have other queries happening before this loop occurs there’s no reason you shouldn’t be able to grab, 1, 10, 100 or 100000, or however many posts you want.
just tried the -1 , still does the same thing, it just shows a list of recent posts that do not even have the keyword which was searched for :O(
Guess i’m off to test then…
I’ll assume anyone trying this is doing so in the theme’s search.php and i’ll try to replicate.
OMG that was fast, works for me…
Can the people with problems please describe how they are creating their search pages.
My theme didn’t have one, so i copied the one from the default theme and added the query_posts line in..
query_posts('showposts=999');just while testing..
There’s no way i’d have that many results, but it definately works..
<?php /** * @package WordPress * @subpackage Default_Theme */ get_header(); ?> <div id="content" class="narrowcolumn" role="main"> <?php query_posts('showposts=999'); if (have_posts()) : ?> <h2 class="pagetitle">Search Results</h2> <div class="navigation"> <div class="alignleft"><?php next_posts_link('« Older Entries') ?></div> <div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div> </div> <br /> <br /> <?php while (have_posts()) : the_post(); ?> <div <?php post_class() ?>> <h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3> <small><?php the_time('l, F jS, Y') ?></small> <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p> </div> <?php endwhile; ?> <div class="navigation"> <div class="alignleft"><?php next_posts_link('« Older Entries') ?></div> <div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div> </div> <?php else : ?> <h2 class="center">No posts found. Try a different search?</h2> <?php get_search_form(); ?> <?php endif; ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
Taken straight from the default theme, and all i’ve done is add the query_posts bit…
I am using the http://iamww.com/wordpress-theme-iamww-w2/ theme, it has a search already on it.. I am also using WordPress 2.8.4.
I even just tried cutting and pasting the default search php that you modded, and it still did the same thing where it shows all of the new posts instead of search results.
So I am guessing maybe its something to do with the theme
Custom Query String Reloaded also handles adding the “Next” link on a search page if you have more results than the query string is set for. The plugin hooks into the Loop and intercepts the search results (or any other category, tag, etc. results) the string is set for, without needing to edit a search.php file. Unless the search.php file as something other than the standard loop:
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?> HTML for title, date, etc.... <?php the_excerpt(); ?> <?php endwhile; ?> <?php else : ?> <?php endif; ?>
So there is no way to do this without an additional plugin I am guessing?
I’ve covered how to do it already.
Try another theme if you think that may be the problem. Not suggesting that you permenantly change theme, just simply to see if the problem resolves itself by switching to another.. if not then i can only guess a plugin is causing a problem.
You most certainly do not need a plugin to handle search results, though may want to use one if you want to broaden the scope of search functionality.
t31os_, thanks for replying so fast. Luckily I have a testing copy of my 2.7.1 site at http://www.enduro.nl/wptest This is what I got:
1. This one:
<div id="container"> <p> Dit is search.php</p> <?php query_posts('showposts=999'); if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?>
NEGLECTS THE SEARCH WORD AND GIVES MANY RESULTS
2. This one:
<div id="container"> <p> Dit is search.php</p> <?php query_posts('showposts=999'); ?> <?php if (have_posts()) : ?>
IDEM, NEGLECTS THE SEARCH WORD AND GIVES MANY RESULTS
3. This one:
<div id="container"> <p> Dit is search.php</p> <?php if (have_posts()) : ?> <?php query_posts('showposts=999'); ?>
GIVES A NO RESULT WHEN THE SEARCH WORD IS NOT ON MY SITE AND GIVES MANY RESULTS, NON RELATED POSTS TOO FOR A SPECIFIC SEACHWORD.
Mind you, lowering the number to 3 works. It then gives three newest posts, unrelated to searchword.
4. This one: Adding
<?php query_posts('showposts=3'); if (have_posts()) : ?>
to the search.php from the default theme acts like nr 3.
I’ll leave my testsite in status nr 4.
This issue has gotten muddy: what exactly do you want to get with your search results? A different number of results than default?
Certainly look like search results here henk.
I’m looking at your example pieces of code above and half wondering if you’re including all the loop code in each example…
Item 3: The query_posts is placed incorrectly after the if() , that IF statement refers to the query, so should come after query_posts ..not before..
2.7.1? … if it’s a test install, plonk the current version on there.
- The topic ‘Have more search results show up’ is closed to new replies.