Задать вопрос
@ligisayan

Почему не работает posts_per_page в wp_query?

Всем привет! Есть чистый wordpress и своя тема. На главной странице вывожу собственно созданный тип записи и таксономию. Все выводится нормально за одним исключением - не работает лимит 'posts_per_page' => 6 (выводятся абсолютно все записи). Что уже только не предпринимал и сбрасывал wp_reset_postdata(); везде где только можно, и сохранял постоянные ссылки, и пробовал через костыль - ничего не помогает...
Может быть знаете как можно исправить?
<div class="row">
  <?php $post_type = 'recipe';
	$taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) );
	foreach( $taxonomies as $taxonomy ) :
    $categories = get_terms( $taxonomy );
	foreach ( $categories as $category ) { ?>
  <?php
				  wp_reset_postdata();
			        $args = array(
			                'post_type' => $post_type,
			                'posts_per_page' => 6,  //show all posts
			                'tax_query' => array(
			                    array(
			                        'taxonomy' => $taxonomy,
			                        'field' => 'slug',
			                        'terms' => $category->slug
			                    )
			                )
			            );
			        $posts = new WP_Query($args);
              
        			if( $posts->have_posts() ): ?>
    <?php while( $posts->have_posts() ) : $posts->the_post(); ?>
    <div class="col-md-4 col-sm-6 col-12 <?php echo $category->slug; ?>" data-cat="<?php echo $category->slug; ?>">
      <div class="wrapper">

        <?php if(has_post_thumbnail()) { ?>
        <a href="<?php the_permalink() ?>">
          <?php the_post_thumbnail('recipe-thumb'); ?>
        </a>
        <?php } ?>
        <div class="label">
          <div class="label-text">
            <a href="<?php the_permalink() ?>" class="text-title">
              <?php echo get_the_title(); ?>
            </a>
            <span class="text-category">
								<?php echo $category->slug; ?></span>
          </div>
        </div>
      </div>
    </div>
    <?php endwhile; wp_reset_postdata(); 
		endif; } ?>
    <?php endforeach; 	?>
</div>
  • Вопрос задан
  • 920 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
poshta3005
@poshta3005
Возможно проблема и не там, но... меня смущает две вещи:
а) у Вас открывается два foreach, а закрывается один.
б) Вы перебираете таксономии, выводя с каждой по 6 постов. Если у Вас в каждой таксономии меньше шести постов, то, вполне возможно, будут выводиться все записи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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