WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a custom query to display random posts in my sidebar like this:

$newQuery = array(
     'post__in'  => get_option('sticky_posts'),
     'post_type' => 'ad_listing',
     'posts_per_page' => 10,
     'orderby' => 'rand',
     'post_status' => 'publish');

// Get new set of ads
$smStickyPosts = new WP_Query($newQuery);

if ($smStickyPosts->have_posts()) : while($smStickyPosts->have_posts() : $smStickyPosts->the_post();
    //Display posts

This works fine in all pages, except on the search page, for some reason the first post on the list is always the post that coincides with the search term (for example, if I search for foo and I have a post with the title "foo" it will show first followed by 9 random posts), it's like the search term is getting passed to the custom loop as well.

Also I noticed that if I search for something that doesn't find any results the posts are always the same, it's like the orderby => rand is not doing anything, it works fine on the rest of the site though.

Does anyone know what could be wrong?

Thanks in advance.

share|improve this question
up vote 1 down vote accepted

Suggest you have a look at http://wordpress.org/support/topic/passing-current-single_tag_title-as-variable-into-new-wp_query - I suspect the very last comment which covers both backing up and reseting your query will help.

share|improve this answer
Thanks @buzztone that helped! – javiervd Apr 1 '11 at 4:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.