Как на странице Wordpress с пагинацией сделать, чтобы на первой странице выводило 6 постов а на остальных по 9?
Цикл записей выглядит вот так:
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$query_args = array(
'post_type' => 'post',
'posts_per_page' => 6,
'cat' => 6,
'post__not_in' => [$main_id],
'order' => 'asc',
'paged' => $paged,
);
$query = new WP_Query( $query_args );
if( $query->have_posts() ){
while( $query->have_posts() ){
$query->the_post();
?>
<div class="aricle-item"> <?php the_title(); ?></div>
}
wp_reset_postdata(); // сбрасываем переменную $post
} ?>
Вот так выглядит пагинация:
?>
<div class="pagination-wrapper">
<div class="pagination">
<?php
$count_posts = wp_count_posts();
$published_posts = $count_posts->publish;
$max = round((($published_posts - 6) / 9) + 1, 0) ;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?page=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $max,
) );
?>
И всё работает как надо, кроме моей задачи
Ответы (1 шт):
Автор решения: Кирилл Степанков
→ Ссылка
Предлагаю сделать следующие условие:
if ($paged === 1) {
$posts_per_page = 6;
} else {
$posts_per_page = 9;
}
$query_args = array(
'post_type' => 'post',
'posts_per_page' => $posts_per_page,
'cat' => 6,
'post__not_in' => [$main_id],
'order' => 'asc',
'paged' => $paged,
);