@AveConstantis

Как выводить посты?

Здравствуйте. На сайте есть пагинация, выводятся посты по 10 штук, но я хочу выводить по 12 постов кроме первой страницы (там так же 10). Как такое можно сделать?

UPDATE

Плагин для вывода использую - WP PAGENAVI

Вот код который выводит посты:

<div class="news__table" id="post-container">
                    <?php
                        $query_args = array(
                            'post_type' => 'post',
                            'post_status' => 'publish',
                            'posts_per_page' => 10,
                            'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
                        )
                    ?>
                    <?php $custom_query = new WP_Query($query_args); ?>
                        <?php if ($custom_query->have_posts()) : ?>
                            <?php while($custom_query->have_posts()) : $custom_query->the_post(); ?>

                                <?php get_template_part('template-parts/content-news'); ?>

                            <?php endwhile; ?>
                        <?php else : ?>
                            <h2 class="news__empty">
                                <?php the_field('news__empty'); ?>
                            </h2>
                        <?php endif; ?>
                    <?php wp_reset_postdata();?>
                </div>
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
pro100taa
@pro100taa
Ищите шаблон темы, который отвечает за вывод постов на страницах пагинации. Чаще всего categoru.php или их производные. Там находите цикл. Ищите posts_per_page.

Должно быть что-то такое:

'posts_per_page' => 10

Меняете на 12. Профит.

Здесь больше по теме https://wp-kama.ru/function/wp_query

Дополнение
=============
Немного не понял вопрос в начале. Оказывается автору надо на первой странице 10 постов, а на остальных 12. Нашел такое решение. Подсмотрел на другом сайте. Проверил у себя - работает.

<?php if( $paged != 0 ) { ?>
   <!-- здесь выводим первый цикл, где вставляем в posts_per_page 15 постов-->
<?php } else { ?>
   <!-- здесь выводим второй цикл, где вставляем в posts_per_page 10 постов-->
<?php } ?>
Ответ написан
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Все правки глобального запроса записей нужно делать на хуке pre_get_posts

add_action( 'pre_get_posts', 'custom_pre_get_posts', 1 );
function custom_pre_get_posts( $query ) {

	// Выходим, если это админ-панель или не основной запрос
	if( is_admin() || !$query->is_main_query() )
		return;

	// устанавливаем по 12 постов на страницах пагинации с главной
	if ( $query->is_main_query() && $query->is_home() && $query->is_paged() ) {
		$query->set( 'posts_per_page', 12 );
	}

}
Ответ написан
Ваш ответ на вопрос

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

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