@Andress84

Как выводить посты с разными стилями и разметкой в wordpress?

Доброго времени. Не могу понять как выводить блог-посты с разной разметкой и стилями. То-есть задача такая, чтобы первый пост выводился крупный, а остальные два мелких.

<?php
                   $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
                   $args = array(
                       'posts_per_page' => 10,
                       'order'          => 'ASC',
                       'post_type'      => 'blog',
                       'paged'          => $paged
                   );
                   $loop = new WP_Query( $args );
                   ?>
                   <?php
                   if( $loop->have_posts() ) {
                       while( $loop->have_posts() ){
                           $loop->the_post();
                           ?>

                           <div class="col-lg-5">
                               <div class="single-blog__item blog-large">

                               </div>
                           </div>

                           <div class="col-lg-7">

                               <div class="single-blog__item blog-small">

                               </div>

                               <div class="single-blog__item blog-small">

                               </div>

                           </div>

                           <?php

                       }
                       wp_reset_postdata();

                   }

                   ?>
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
azerphoenix
@azerphoenix
Java Software Engineer
Добрый день!
Я уже давно не занимаюсь ВП разработкой, но вашу задачу можно решить разными способами.
1) не залезая в рнр код, а только CSS стилями. Например, при помощи псевдоклассов first-child last-child nth-child() и т.д.
2) с использованием рнр кода (как по мне более предпочтительный по разным причинам).
Нужно завести свой счетчик вне цикла. В цикле инкрементировать значение и например, если номер поста равен 1, то вывести пост со стилем (большая картинка и т.д.), а если номер поста не равен 1, то вывести пост с другим стилем.
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Например так

$i = 1;
while( $loop->have_posts() ) {
	$loop->the_post();

	if ( $i == 1 ) {
		# первый пост
	} else {
		# все остальные
	}

	$i++;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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