Поддержка Проблемы и решения Проблема с Pagination.

  • Решено InterArt

    (@interart)


    Всем привет.
    Возникла проблема. Посты в настройках отображаются по 10 страниц. Все происходит нормально.
    Но вот я создал категорию red, зайдя на страницу которой я хотел бы отображать посты в ней по 2 скажем. Я создал темплейт category-red.php — проверял по иерархии — все верно. Затем в него вписываю код:

    <?php
                        	wp_reset_query(); // ресетим стандартный wp_query
    
                        	$category = get_the_category();
                        	$cat_id = $category[0]->term_id;// вычисляю id категории
    
                        	$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                        	$args = array(
                        		'cat' => $cat_id, 							'order' => 'ASC',
    							//'showposts'=> 2,
    							'posts_per_archive_page'=> 1,
    							'paged' => $paged
    						);
    						$the_query = new WP_Query( $args );
    
                        ?>
    
                        <?php if ($the_query->have_posts()) {
                        			 while ($the_query->have_posts()) {
    									 $the_query->the_post(); ?>
                        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">
                            <div class="storytitle"><?php edit_post_link(__('Edit This')); ?><?php the_title(); ?></div>
                            <div class="post-content">
                                <?php the_content(__('Read more...')); ?>
                            </div>
                        </div>
    
                        <?php
    						}
                        }
                        ?>
                        <div class="post-navigation">
                        <?php
    	                   / $total_pages = $the_query->max_num_pages;
    	                     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    						 $links = paginate_links(array(
    							'base'         => '%_%',
    							'format'       => '?paged=%#%',
    							'total'        => $the_query->max_num_pages,
    							'current'      => $paged,
    							'show_all'     => true,
    							'end_size'     => 3,
    							'mid_size'     => 1,
    							'prev_next'    => true,
    							'prev_text'    => ' ',
    							'next_text'    => ' ',
    							'type'         => 'plain',
    							'add_args'     => false,
    							'add_fragment' => ''
    						));
    						if (!empty($links)) {
    							echo $links;
    						}
    
    					?>

    Могу сказать что я пробовал и showposts и post_per_pages, но суть одна когда я захожу на страницу категорий http://site.dev/category/red/ я вижу что отображается 2 страницы, т е все в порядка потом еще 2 страницы ну а потом переключаюсь на следующую(2-ю) — все хорошо но когда переключаюсь на 3-ю т е http://side.dev/category/red/page/3 вываливается стандартный 404-й шаблон т е Page not found. хотя должно все 5 раз отобразить(всего 10 постов в этой категории). Т е до http://side.dev/category/red/page/5
    Я полагаю, что каким-то образом настройки отображения сохраняются и он отображает считает что на каждой странице отображается по 10 постов т е не считает их разбивку.
    PS.
    posts_nav_link()) тоже использовал — резултата ноль.
    Прошу помощи или направьте в нужное русло. Спасибо.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Yuri

    (@yube)

    Подозреваю, что проблема из-за создания второго объекта WP_Query. Попробуйте в копию оригинального шаблона перед Циклом добавить

    query_posts($query_string . '&posts_per_page=2');

    Более экономным решением было бы изменение posts_per_page на хуке перед выборкой.

    + 1
    При том, что это шаблон категории red, все от wp_reset_query() до WP_Query() можно заменить приведенной строчкой кода и подредактировать if while.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Проблема с Pagination.» закрыта для новых ответов.