pagenavi показывает много страниц, рассчитанных из всех сообщений на сайте с помощью query_posts

Мне нужно вычитать сообщения из 2 сегментированных ключевых слов, используя s=keyword с get_posts , но только поиск в заголовках. Я нашел этот ответ .

Я создал собственный шаблон, чтобы использовать его на одной странице. Затем я использовал объединенные get_posts в своем ответе, используя это

Итак, мой собственный код шаблона:

 <?php /* Template Name: custom template posts */ ?> <?php get_header(); ?> <?php add_filter( 'posts_search', '__search_by_title_only', 500, 2 ); ?> <?php //first query $blogposts = get_posts(array( 's' => 'keyword1', 'showposts' => -1, )); //second query $authorposts = get_posts(array( 's' => 'keyword2', 'showposts' => -1, )); $mergedposts = array_merge( $blogposts, $authorposts ); //combine queries $postids = array(); foreach( $mergedposts as $item ) { $postids[]=$item->ID; //create a new query only of the post ids } $uniqueposts = array_unique($postids); //remove duplicate post ids $mypostcount = count($posts); $posts = get_posts(array( //new query of only the unique post ids on the merged queries from above 'post__in' => $uniqueposts, 'posts_per_page' => 12, 'paged' => $paged, ));?> <?php remove_filter( 'posts_search', '__search_by_title_only', 500 ); ?> <div class="post-listing"> <?php foreach( $posts as $post ) : ?> <?php setup_postdata($post); ?> // layout code here <?php endforeach; ?> </div> <?php query_posts('paged='.$paged.'&posts_per_page='. $cat_query); ?> <?php if(function_exists('tie_pagenavi') ) { tie_pagenavi(); } ?> <?php wp_reset_postdata();?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?> 

Когда я перехожу к wordpress admin, создайте новую страницу, изменив для нее шаблон по умолчанию, все в порядке, но одна проблема с моей страницей, показывающей много страниц, которые пустые после последней страницы число всех страниц, рассчитанных из всех сообщений в моей базе данных ,

Я использую настраиваемую тему, в которой есть внутренний pagenavi, который называется tie_pagenavi() . Я также попробовал плагин wp_pagenavi .

Примечание. Я использую $mypostcount = count($posts); для расчета количества должностей. Я тестировал его эхом. Он действительно возвращается фактическим количеством записей в этом цикле, но я не уверен, как использовать его для ограничения номеров разбиения на страницы.

Вы можете проверить все на себе по http://elnhrda.com/e/sisi2posts/page/56/ . 56 – последняя страница с сообщениями.

Изменить: после поиска и тестирования больше проблема возникает из этой строки

query_posts ('paged ='. $ paged. '& posts_per_page ='. $ cat_query);

Если я удалю его, исчезает разбиение на страницы. Если я добавлю '&showposts=2000' номера страниц изменили общее количество моих сообщений, разделенных на 2000.

Solutions Collecting From Web of "pagenavi показывает много страниц, рассчитанных из всех сообщений на сайте с помощью query_posts"

Я не загружал плагин для проверки, и я никогда не использую query_posts() , но, возможно, tie_pagenavi() зависит от значения в глобальной переменной $paged . Попробуйте настроить это значение до (или после) вызова query_posts() . Вот код для его настройки перед вызовом query_posts() .

 if ( get_query_var( 'paged' ) ) // On a paged page. $paged = get_query_var( 'paged' ); else $paged = 1; query_posts( "paged={$paged}&posts_per_page={$cat_query}" ); if ( function_exists( 'tie_pagenavi' ) ) tie_pagenavi(); 

после более чем 15 часов тестирования и работы

Решение

замените эту строку

query_posts('paged='.$paged.'&posts_per_page='. $cat_query);

с

query_posts(array('post__in' => $uniqueposts, 'posts_per_page' => 12,'paged' => $paged,));

Проблема в

эта строка отвечает только за запуск разбивки на страницы, поэтому она запускает ее со всем количеством сообщений на сайте, если я не укажу, какие сообщения мне нужны

Большое спасибо каждому, кто пытался помочь мне и надеюсь, что этот ответ поможет кому-то в будущем