@inna97
начинающий верстальщик

Что сделать, если при пагинации в WP вместо 2 страницы выдается 404?

Делаю свою тему в WP. Нужна числовая пагинация для каталога.
Есть такой код для архивного файла.
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
								      // WP_Query arguments
								      $args = array (
								        'post_type'              => array( 'catalog' ),
								        'post_status'            => array( 'publish' ),
								        'posts_per_page'         => '3',
								        'posts_per_archive_page' => '3',
								        'paged' => $paged
								      );

$the_catalog = new WP_Query( $args );
								// Цикл
								if ( $the_catalog->have_posts() ) {
									while ( $the_catalog->have_posts() ) {
											$the_catalog->the_post();										
								?>		
									
				<a href="<?php echo get_permalink(); ?>" target="_blank">
					<div class="catalog__title">
							<?php the_field('product_name'); ?>	
					</div>
				</a>								
				<?php			
						} the_posts_pagination();	
						      } else {
							// Постов не найдено
								}								
								// Возвращаем оригинальные данные поста. 
                                                                 Сбрасываем $post.
								wp_reset_postdata();
								?>


Первая страница выдается как надо: 3 карточки товара, внизу пагинация 12...5Далее.
А вот при переключении на следующую страницу выходит 404 страница.

Что не так с этим кодом? Почему не формируются последующие страницы?
  • Вопрос задан
  • 1037 просмотров
Решения вопроса 1
@inna97 Автор вопроса
начинающий верстальщик
Проблема решена.
Не нужно было использовать метод WP_Query в файлах типа arhive-news.php.
news - это заданная новая таксономия.
Нужно было использовать простой вывод поста (post).

<?php			
				// Цикл
				if ( have_posts() ) {
					while (have_posts() ):
						the_post();						
				?>		
					<div class="arhivenews__block">
						<a href="<?php echo get_permalink(); ?>" target="_blank">
							<div class="arhivenwes__img">							
								<?php echo get_the_post_thumbnail(get_the_ID(), array(350, 99999)); ?>
							</div>
							<div class="arhivenews__date">
								<?php echo get_the_date('j F Y'); ?>
							</div>
						
							<div class="arhivenews__title">
								<?php the_title(); ?>
							</div>
						</a>						
					</div>
				<?php
					endwhile;	?>
			</div>
					<?php
					the_posts_pagination();
					
				} else {
					// Постов не найдено
				}
				// Возвращаем оригинальные данные поста. Сбрасываем $post.
				wp_reset_postdata();
				?>


И тогда пагинация the_posts_pagination(); работает правильно и для "Записи" (т.е. статьи в блог) и для новых типов записи (таксономии).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
anton_reut
@anton_reut
Начинающий веб-разработчик
А как выглядит ссылка на страницу 2...3...4 и т.д.? Там через GET? Вот туда и копай, где-то твой GET не принимается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы