• Требуется помощь в том, чтобы обернуть все последующе посты после 3-го в контейнер «X».

    Сейчас код имеет следующий вид:

    <?php
    $sn_args = array(
    'post_type' => 'post',
    'paged'  => $paged,
    'cat' => '27,31,20',
    'posts_per_page' => '11',
    ); ?>
    
    $querysn = new WP_Query( $sn_args );
    
    if ( $querysn->have_posts() ){?>
    
    <?php 
    
    while ( $querysn->have_posts() ) : $querysn->the_post() ; ?>
    <?php $c++; if( !$paged && $c == 1) :?>
    <?php include 'template-parts/content-news-first-fullheight.php'; ?>
    <?php elseif( !$paged && $c > 1 && $c <= 3) :?>
    <?php include 'template-parts/content-news-small-fullheight.php'; ?>
    
    <?php else:?>
    <?php include 'template-parts/content-small.php'; ?>
    <?php endif;?>  
    
    <?php endwhile; }?>
    
    <?php wp_pagenavi( array( 'query' => $querysn ) );?>

    То есть, 1й пост имеет темплейт А, 2-й и 3-й посты имеют темплейт Б, а все остальные, что идут дальше, теймплейт В. Как посты идут сейчас:

    post-1
    post-2
    post-3
    post-4
    ...
    post-last

    Все посты, начиная с 4-го я и пытаюсь обернуть в отдельный контейнер, чтобы получилось следующее:

    post-1
    post-2
    post-3
    <div class="x">
      post-4...post-last
    </div>

    Не понимаю, как это сделать. Прошу помочь. Заранее спасибо.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Видимо, так:

    <?php
    $sn_args = array(
    'post_type' => 'post',
    'paged'  => $paged,
    'cat' => '27,31,20',
    'posts_per_page' => '11',
    ); ?>
    
    $querysn = new WP_Query( $sn_args );
    
    if ( $querysn->have_posts() ){?>
    
    <?php
    $c = 0;
    while ( $querysn->have_posts() ) : $querysn->the_post() ; ?>
    <?php $c++; 
    
    if($c == 4) : ?>
        <div class="x">
    <?php
    endif;
    
    if( !$paged && $c == 1) :?>
    <?php include 'template-parts/content-news-first-fullheight.php'; ?>
    <?php elseif( !$paged && $c > 1 && $c <= 3) :?>
    <?php include 'template-parts/content-news-small-fullheight.php'; ?>
    
    <?php else:?>
    <?php include 'template-parts/content-small.php'; ?>
    <?php endif;?>
    
    <?php endwhile; }?>
    
    <?php
    if($c > 3) : ?>
        </div>
    <?php
    endif;
    ?>
    
    <?php wp_pagenavi( array( 'query' => $querysn ) );?>

    @denisco
    Спасибо! Ваш вариант отлично работает.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Как обернуть все посты, начиная с 3-го в отдельный конте» закрыта для новых ответов.