@YakovSpb

Как мне сделать несколько пагинаций на одной странице?

В каждом табе <div class="yak_tab_item"> нужно сделать свою пагинацию.
Причем во втором табе выводится два разных вида страниц., т.е. для них нужно сделать общий 'posts_per_page'.
<div class="yak_tab_content">

	    <div class="yak_tab_item">
	<div class="result_search">
		
	<?php

	
$args = array( 
'post_type' => 'page',
'posts_per_page' => -1,
's' 			=> $s,
	'tax_query' => array(
		array(
			'taxonomy' => 'services',
			'field' => 'slug',
			'terms' => array('services_post'),
			'include_children' => true,
		),
	)
 );
$loop = new WP_Query( $args );

if($loop->have_posts()) :
while ( $loop->have_posts() ) : $loop->the_post();
?>
	<div class="result_search__item">

	<div class="result_search__title"><?php the_title(); ?></div>
	
	<div class="result_search__content">
		<div class="result_search__text">
	Триплекс – это многослойный инновационный материал, который изготавливается путём склеивания Триплекс – это многослойный инновационный материал, который изготавливается путём склеивания
	</div>
	</div>

	<div class="result_search__link">
	<a href="<?php the_permalink(); ?>"><?php the_permalink(); ?></a>
	</div>
	</div>
<?php	
endwhile; endif;

the_posts_pagination();

 wp_reset_query();
?>			
				
				</div>
		</div>
		
        <div class="yak_tab_item">
		
<div class="result_search">

<?php
$args = array( 
'post_type' => 'al_product',
'posts_per_page' => -1,
's' => $s
 );
$loop = new WP_Query( $args );

if($loop->have_posts()) :
while ( $loop->have_posts() ) : $loop->the_post();
?>
	<div class="result_search__item">
	<div class="result_search__title"><?php the_title(); ?></div>
	
	<div class="result_search__content">
		<div class="result_search__text">
	Триплекс – это многослойный инновационный материал, который изготавливается путём склеивания Триплекс – это многослойный инновационный материал, который изготавливается путём склеивания</div>
	</div>
	<div class="result_search__link">
	<a href="<?php the_permalink(); ?>"><?php the_permalink(); ?></a>
	</div>
	</div>
<?php	
endwhile; endif; wp_reset_query();
?>

<?php
$args = array( 
'post_type' => 'page',
'posts_per_page' => -1,
's' 			=> $s,
	'tax_query' => array(
		array(
			'taxonomy' => 'products',
			'field' => 'slug',
			'terms' => array('portfolio_post'),
			'include_children' => true,
		),
	)
 );
$loop = new WP_Query( $args );

if($loop->have_posts()) :
while ( $loop->have_posts() ) : $loop->the_post();
?>
	<div class="result_search__item">
	<div class="result_search__title"><?php the_title(); ?></div>
	
	<div class="result_search__content">
	<div class="result_search__text">
	Триплекс – это многослойный инновационный материал, который изготавливается путём склеивания Триплекс – это многослойный инновационный материал, который изготавливается путём склеивания
	</div>
	</div>

	<div class="result_search__link">
	<a href="<?php the_permalink(); ?>"><?php the_permalink(); ?></a>
	</div>
	</div>
<?php	
endwhile; endif;
the_posts_pagination();
 wp_reset_query();
?>



</div>

		</div>
		
		
        <div class="yak_tab_item">
	<div class="result_search">	
<?php
$args = array( 
'post_type' => 'state',
'posts_per_page' => -1,
's' => $s
 );
$loop = new WP_Query( $args );

if($loop->have_posts()) :
while ( $loop->have_posts() ) : $loop->the_post();
?>
<div class="result_search__item">
	<div class="result_search__title"><?php the_title(); ?></div>
	
	<div class="result_search__content">
		<div class="result_search__text">
	<?php the_content(); ?>
	</div>
	</div>

	<div class="result_search__link">
	<a href="<?php the_permalink(); ?>"><?php the_permalink(); ?></a>
	</div>
	</div>
<?php	
endwhile; endif;
the_posts_pagination();
 wp_reset_query();
?>
</div>
		</div>
		
		
		
		
    </div>
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
1. Получить номер страницы пагинации

// получаем номер страницы пагинации
$current = absint(
	max( 1, get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' ) )
);


2. В аргументах указать 'paged' => $current,

3. Вывод пагинации делать после wp_reset_query()

echo wp_kses_post(
	paginate_links( [
			'total'   => $loop->max_num_pages,
			'current' => $current,
	] )
);


Во втором табе запрос нужно объединять, пагинация не будет работать корректно
Ответ написан
Ваш ответ на вопрос

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

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