@Miqo58

Wp default loop break?

<div class="container">
	<div class="row">
		 <div class="col-md-8">
	 	<?php
		$arguments = array(
		'post_type'	=> 'post',
		'posts_per_page' => 5
		); 

		$query = new WP_Query( $arguments ); ?>
		 	
 			
			<div class="row">

				<?php $i = 0; while ( $query->have_posts() && $i++ < 1 ) : $query->the_post(); ?>
				 	<div class="col-md-6 STYLE-1 (for 1 post)">
				 		 <?php the_title(); ?>
				 	</div>
				<?php endwhile; wp_reset_postdata(); ?>
			
		 		<div class="col-md-3 STYLE-2 (for 2 post)">
	 			<?php $i = 0; while ( $query->have_posts() && $i++ < 2 ) : $query->the_post();  
			 		 <?php the_title(); ?>
	 			<?php endwhile; wp_reset_postdata(); ?>
			 	</div>
		
				<div class="col-md-3 STYLE-3 (for 3 post)">
					<?php $i = 0; while ( $query->have_posts() && $i++ < 5 ) : $query->the_post(); ?>
				 		 <?php the_title(); ?>
		 			<?php endwhile; wp_reset_postdata(); ?>
			 	</div>
		
			</div>
 
		<?php wp_reset_postdata(); ?>
		</div>
		<div class="col-md-4"></div>
	</div>
</div>


5c5594e70a476898330058.png
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Во-первых, переменная $i вам не нужна, у объекта WP_Query есть свойство $query->current_post.

Во-вторых, не нужно делать каждый раз wp_reset_postdata() и продолжать цикл, достаточного одного стандартного цикла while( have_posts() ), а внутри if.

В третьих, у вас в целом разметка одинаковая, отличаются только классы / стили. Поэтому вашу задачу в принципе можно решить чисто на CSS. Но если все же хотите задействовать PHP, то будет что-то типа такого:

$arguments = [
    'posts_per_page' => 5
]; 

$query = new WP_Query( $arguments ); ?>

<div class="row">

<?php 
// Обычный WordPress Loop:
while ( $query->have_posts() ) : $query->the_post();

    // Можно ограничиться одним кастомным классом с индексом:
    echo "<div class=\"custom-post-style-{$query->current_post}\">";

   ...

endwhile; ?>

</div>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack Куратор тега WordPress
Thinking about a11y
В вашем случае, как я понимаю, достаточно применять CSS grid для стилизации постов. И самый простой цикл.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы