WordPress: постраничная навигация при query_posts

При использовании в шаблоне query_posts перестает работать постраничная навигация — при переходе на следующую страницу отображается тот же самый контент. Проблема решается путем добавлению к циклу всего 2-х строк кода.

Необходимо найти код начала цикла:

<?php if (have_posts()) : ?>
 <?php while (have_posts()) : the_post(); ?>

и вставить перед ним следующий код:

<?php
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("paged=$page");
?>

Ну и, естественно, если необходимо, в query_posts можно добавить дополнительные параметры, например, количество постов в этом цикле или рубрику, из которой из выбирать.

Комментарии (20)
  1. 1

    У меня другая проблема с навигацией. При переходе на 3ю страницу и следующие, показывает контент index.php темы. Первые две страницы отображает нормально. В чем причина?

  2. 2
    Юрий

    За коды огромнейшая благодарность!

    Только во втором блоке должно быть
    query_posts(«paged=».$page);

  3. 4
    Артем

    Странно конечно, но у меня не сработало…

    <?php
    			$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
    			query_posts("paged=$page");	?>
    			<?php query_posts('showposts=9'); ?> 
    			<?php $k=0; ?>
     <?php while (have_posts()) : the_post(); $k++; ?> 
  4. 6
    Рита

    О боги! Как я Вам благодарна!
    Мне понадобились «хлебные крошки» и я нашла их у вас!
    Не выводились записи на странице (шаблон позволял выводить только на главной), нашла у Вас, как выводить записи с навигацией на любой странице, а посмотрев комментарии нашла эту статью и о чудо, эти три строчки спасли меня!
    Я их вставила в шаблон и он заработал! Спасибо, спасибо, спасибо Вам огромное!

  5. 7
    Рита

    А как можно добавить параметр вывода записей определённой категории?

  6. 9

    Добрый день. Тоже столкнулся с данной проблемой. Но query_posts нету. А за вывод отвечает вот такой код: Не могу понять что нужно менять! Не подскажите?

    <?php
    $cnt = 0;
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
    		'posts_per_page' => 15,
    		'offset' => 0,
    		'paged'			 => $paged,
    		'category' => '',
    		'orderby' => 'post_date',
    		'order' => 'DESC',
    		'include' => '',
    		'exclude' => '',
    		'meta_key' => '',
    		'meta_value' => '',
    		'post_type' =>'post',
    		'post_mime_type' => '',
    		'post_parent' => '',
    		'post_status' => 'publish',
    	'suppress_filters' => true ); 
    		$postlist = get_posts( $args );
    		foreach ( $postlist as $post ) :?>
    		<?php 
    			setup_postdata( $post ); 
    			$cnt++;
    			get_template_part( 'content', "postpreview" );?>	
    			<?php //if($cnt == 5): ?>
    			<?php //$cnt=0; endif;?>
    		<?php endforeach; ?>	
    </div> <!-- WR CLEARFIX -->
    </div><!-- ARTICLES -->
    <div class="pager clearfix">
     <?php wp_pagenavi(); ?>
  7. 11

    Но почему тогда wp-paginavi не работает на главной? Контент не меняется на 2,3,4 страницах. В рубриках все работает!

  8. 13

    Здравствуйте подобная проблема но код другой. В рубриках пагинация работает А на главной полный отказ перегружается показывает в строке Url…./page 2 а посты остаются с первого.
    Код вот такой.Простите что в таком виде не разобрался как в сообщение php вставить.

    <?php query_posts('order=ASC'); if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    

    Помогите с решением

  9. 15

    Спасибо но осталось также. Уже не знаю что делать. Как шахтер перерыл весь инет. Неделю мучаюсь. Может прислать Вам код полнее ? до какого нибудь момента. К примеру с вашим кодом теперь выглядит так

    <?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
    <?php query_posts('order=ASC&amp;paged=$page'); if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    
    						
    						<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
  10. 18

    В самом начале идеи создания сайта. Я хотел закрепить статьи на первой странице в определенном порядке. Ставил какой то плагин. Не помню и тоже вроде менял в коде. Может сейчас конфликт происходит.? Найти где менял не помню. Плагина того давно нет.

  11. 19
    Вова

    У кого не работает падинация на странице searsh.php. Посмотрите как правильно создавать шаблон страницы, соблюдая все стандартные названия — https://codex.wordpress.org/Creating_a_Search_Page . Моя ошибка была именно в этом.

  12. 20
    Эльвира

    Спасибо большое, автор! Ты так помог мне!

Ваш комментарий