@PakoGonsalezZ

Что я сделал неверно в пагинации кастомных постов?

Вывожу на странице посты пользователей, необходима пагинация, пример брал отсюда
ls-web.ru/paginatsiya-spiska-kastomnyh-postov
Саму пагинацию, вывел кодом, как в других разделах
Вот код
<?php
                        global $wp_query;
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;                    
$per_page = 5;
$offset = ($page-1)*$per_page;
						$posts = query_posts( [
							'post_type'  => 'private_posts',
                            'posts_per_page'  => $per_page,
                            'offset'          => $offset,
							'author__in' => [$q_user_id]
							] );
                            $current_page = $page;
                            
						 while ( have_posts() ) : the_post(); 
						?>
						<li>
                        
							<div class="block-img" style="background-image: url(<?= get_the_post_thumbnail_url( $post->ID, 'full' ); ?>);">
								<!-- <img src="<?= get_template_directory_uri(); ?>/img/img-1q.png"> -->
								<span><?= get_the_date('d.m.y', $post->ID); ?></span>
							</div>
							<div class="edit-article">
								<h2><?= $post->post_title; ?></h2>
								<?php if ($q_user_id == wp_get_current_user()->ID) { ?>
								<a href="<?= get_permalink( $edit_article_id ); ?>?id=<?= $post->ID; ?>"><img src="https://toppols.ru/wp-content/themes/toppol/img/redakt.png"> редактировать статью</a>
								<?php } ?>
							</div>
							
							<span class="lines"></span>	
							<p><?= $post->post_excerpt; ?></p>
							<div class="block-bottom">
								<p class="block-left"><a href="<?= get_the_permalink( $post->ID ); ?>" class="chit">Читать</a></p>
								<p class="block-right">
									<span><img src="<?= get_template_directory_uri(); ?>/img/oco.png"><?= GetCounts__SPVC($post->ID); ?></span>
									<!--<span><img src="<?= get_template_directory_uri(); ?>/img/like.png">5</span>-->
									<span><img src="<?= get_template_directory_uri(); ?>/img/coment.png"><?php plural_form(get_comments_number($post->ID), array('комментарий','комментария','комментариев')); ?></span>
								</p>
							</div>
						</li>
						<?php
						endwhile; ?> 
                        
					</ul>
	<div class="page-num">
                      	<? $pagination = paginate_links([
						'current' =>  $current_page,
						'type'    => 'array',
						'next_text' => ">",
						'prev_text' => "<"
					]); ?>
						<? category_pagination($pagination); 
                        wp_reset_query();
                        ?>

Паинация считается и выводится, но вторая страница пуста
https://toppols.ru/blogi/vse-o-samostoyatelnom-mon...
Подскажите что не так?
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ответы на вопрос 2
@PakoGonsalezZ Автор вопроса
Добился, вывода второй страницы пагинации, в function.php нашел обработчик адресов, который подгружал другой шаблон на страницу пагинации, исправил это, но теперь на второй странице пагинации выводится то же самое содержимое - первые 5 элементов
Ответ написан
Комментировать
jshikanova
@jshikanova
Была подобная проблема, решила ее используя вместо query_posts() просто have_posts() (подсмотрев как это реализовано в стандартном шаблоне с рабочей плагинацией), но тогда невозможно выбрать количество постов на странице, будет выводится стандартное количество
Попробуйте посмотреть в этой статье, там подробно разобрано почему такая ошибка возникает и как ее решить
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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