Фильтрация по тегам

Как сделать фильтрацию по тегам на странице категорий?
На странице вывод постов из текущей категории и кнопки при нажатии на которые, должны остаться только посты из этой же категории и с выбранным тегом.

Через стандартный цикл, остаются нужные посты, но количество страниц пагинации не уменьшилось, когда посты с тегом закончились остаются просто пустые страницы.

<a onclick="cleanUrl()">Все</a>
<a href="<?php get_page_link(); ?>?stihi=true">В стихах</a>
<a href="<?php get_page_link(); ?>?proza=true ">В прозе</a>

<?php
	while ( have_posts() ) : the_post(); ?>
				<div class="post_wrap">

				<?php if (isset($_GET['stihi'])){ ?>

						<?php if ( has_tag('stihi') ) { ?>
							<?php get_template_part( 'template-parts/temp', 'basic' ); ?>
						<?php } else { ?>

						<?php } ?>

				<?php } else { ?>
					 <?php get_template_part( 'template-parts/temp', 'basic' ); ?>
				<?php } ?>

				</div>

			</div>

		<?php endwhile; 

		the_posts_pagination();

Через WP_Query та же проблема с пагинацией.

$cat = get_category( get_query_var( 'cat' ) );
$currentCategory =  $cat->slug;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$post_args = array(
  'category_name' => $currentCategory,
 'tag' => 'stihi',
  'paged'=> $paged,
 'posts_per_page' => '2'
);

$posts_loop = new WP_Query( $post_args );

if ( $posts_loop->have_posts() ) { 
while( $posts_loop->have_posts() ):
 $posts_loop->the_post(); 

get_template_part( 'template-parts/temp', 'basic' );

endwhile;
}
else{
	echo "error";
}

the_posts_pagination();

wp_reset_query();