Вывод в ТОП в поиске
-
Всем привет.
У меня возникла следующая дилема.
Я пытаюсь вывести в посты автора в ТОП (а затем те которые уже по поиску идут за исключением конечно посты Vasya), если в поиск было введено имя автора Vasya.Я вычисляю id автора по имени и если я получил это user_id, делаю следующее:
сначала вывожу все посты по user_id и отображаю их но затем мне надо вывести все остальные страницы по поиску за исключением страниц где автор user_id. Но вот тут то беда, результатов второго цикла я не вижу.$args1 = array( 'author' => $user_id, 'paged' => $paged ); $results_author = new WP_Query($args1); // для первого цикла wp_reset_query(); $args2 = array( 'author' > '-' . $user_id, // исключаем статьи автора 's' => $search, 'paged' => $paged ); $results_author_2 = new WP_Query($args2); // для второго цикла
и далее я прогоняю эти два цикла последовательно:
if ( $results_author->have_posts() ) { while ( $results_author->have_posts() ) { $results_author->the_post(); the_title(); }} wp_reset_query(); if ( $results_author_2->have_posts() ) { while ( $results_author_2->have_posts() ) { $results_author_2->the_post(); the_title(); }} // и пейджинация <?php global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages )); ?>
В итоге выводит только посты автора т е первый цикл (ну и по пейджам их разбивает), второй вообще не выводит. Все это в темплейте search.php. Я думаю что тут дело с пейджинацией.
Но может кто знает как это компактнее реализовать или вообще другим путем пойти (комбинированные запросы)?
Мне кажется это решение слишком нерациональным.Заранее благодарен.
- Тема «Вывод в ТОП в поиске» закрыта для новых ответов.