@nikelodeon
Начинающий developer

Wordpress the_posts_pagination() не работает. При клике на следующую страницу, выводит посты с первой. Как исправить?

При клике на следующую страницу, выводит посты с первой.

Код:
<?php if(have_posts()): ?>
	<?php while(have_posts()): ?>
		<?php the_post())?>

		<div class="col-md-12">
			<div class="card">
				<div class="card-body">

				<?php if(has_post_thumbnail()): ?>
					<?php the_post_thumbnail("thumbnail", array('class'=>'thumbnail')); ?>
					<?php else: ?>
					<img class="thumbnail" src="https://picsum.photos/200" alt="" width="150" height="150">
				<?php endif; ?>
					<h5 class="card-title"><?php the_title(); ?></h5>
					<p class="card-text"><?php the_excerpt(); ?></p>
				</div>
			</div>
		</div>
	
	<?php endwhile;?>
	
	<?php the_posts_pagination(); ?>
<?php else: ?>
	<p>posts doesn't exist</p>
<?php endif; ?>
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Lord_Dantes
Значит перед тем как делать навигацию вам нужно:
- определить сколько постов на странице и для чего делать навигацию, дальше определить какая это страница

Делается это так:
?php $current = absint(max(1, get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' ))); 
						$posts_per_page = 9; ?>
			<?php $args = array( 'post_type' => 'blog', 'posts_per_page' => $posts_per_page, 'paged' => $current ); $loop = new WP_Query( $args ); ?>
			<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
				// код вывода поста блога например
			<?php endwhile; ?>


Далее собственно выводим пагинацию:
<?php
				  echo wp_kses_post(
				  	paginate_links([
				  		'total' => $loop->max_num_pages,
				  		'current' => $current,
				  		'prev_text' => 'prev',
					        'next_text' => 'next',
				  	])
				  );
			 	?>
Ответ написан
Ваш ответ на вопрос

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

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