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 можно добавить дополнительные параметры, например, количество постов в этом цикле или рубрику, из которой из выбирать.

Комментарии (27)

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

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

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

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

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

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

  6. Добрый день. Тоже столкнулся с данной проблемой. Но 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. Но почему тогда wp-paginavi не работает на главной? Контент не меняется на 2,3,4 страницах. В рубриках все работает!

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

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

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

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

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

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

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

  13. У меня следующая проблема: Вроде все робит, только высвечивается ссылка на третью страницу, а при переходе на неё, выдает «404». Там должно находится ещё несколько постов. В чем может быть проблема?

    
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
           $args = array('category__in' => $cat, 'posts_per_page' => 6, 'ignore_sticky_posts' => 1, 'paged' => $paged);
            $loop2query = new WP_Query($args);
            query_posts($args);
            while ( have_posts()){
                the_post();
         ?>
    
  14. Молодой человек или девушка , который написал этот пост спасибо тебе большое человеческое , здоровье , счастья , что бы дети не болели , короче что бы все збс было ! Спасибо.

  15. 
    <?php
                    $page = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    query_posts("paged=$page");
                    ?>
                    <?php $the_query = new WP_Query('post_type=portfolio&amp;showposts=4&amp;orderby=desc'); ?>
                    <?php while ($the_query->have_posts() ) : $the_query->the_post(); ?>
                        <?php
                        $thumb_id = get_post_thumbnail_id();
                        $thumb_url = wp_get_attachment_image_src($thumb_id,'', true);
                        ?>
                        <div class="col-md-4">
                            <div class="oneslide">
                                <?php the_post_thumbnail('main-slider', array('class' => 'slider-img')) ?>
                                <h6><?php the_title(); ?></h6>
                                <div class="hover">
                                    <img class="blur" src="<?php bloginfo('template_directory'); ?>/img/blur.png" alt="">
                                    <a href="<?php echo get_post_permalink(); ?>">Подробнее</a>
                                </div>
                            </div>
                        </div>
                    <?php endwhile; ?>
                    <div class="pages">
                        <ul>
                            <?php if (function_exists("pagination")) {
                                pagination($custom_query->max_num_pages);
                            } ?>
                        </ul>
                    </div>
                    <?php wp_reset_postdata(); ?>
    

    Использывал вашу пагинацию, но почему то при переходе на 2 страницу пишет что страница не найдена, есть ошибка в коде?

  16. Спасибо! Помогло!

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