У меня есть собственный запрос для отображения случайных сообщений на моей боковой панели, например:
$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
endwhile;
Это отлично работает на всех страницах, кроме страницы поиска, почему-то первым постом в списке всегда является пост, совпадающий с поисковым запросом (например, если я ищу foo и у меня есть пост с заголовком » foo», он будет отображаться сначала, а затем 9 случайных сообщений), это похоже на то, что поисковый запрос также передается в пользовательский цикл.
Также я заметил, что если я ищу что-то, что не находит никаких результатов, сообщения всегда одинаковы, это похоже на то, что orderby => rand ничего не делает, хотя на остальной части сайта он работает нормально.
Кто-нибудь знает, что может быть не так?
Заранее спасибо.
Предлагаем вам взглянуть на http://wordpress.org/support/topic/passing-current-single_tag_title-as-variable-into-new-wp_query — я подозреваю, что самый последний комментарий, который охватывает как резервное копирование, так и сброс вашего запроса, будет помощь.