Вывод цикла php wordpress

Всем привет. пытаюсь вывести посты. Нужно вывести 2 контейнера с разными классами, в одном контейнере 2 записи, во втором 3 записи.

    <?php 
$gallery_args = array(
    'number'     => -1,
    'post_status' => 'publish',
    'order' => 'DESC',
    'post_type' => 'gallery',
    'suppress_filters' => 0,
);

$i=0;
echo '<div class="gallery-panel-left">';
foreach($gallery_args as $child) {
    $i++; ?>
    <div class="panel-item" style="background: url(<?php bloginfo('template_directory'); ?>/img/gallery-photo4.png) no-repeat;background-size:cover;">
        <div class="gallery-panel-info">
            <div class="gallery-panel-title"><?php echo $child->post_title; ?></div>
            <div class="gallery-panel-description">Классы, в которых мы ждем именно Вас!</div>
        </div>
    </div>
    <?php
    if ($i % 2 == 0) {
        echo '</div><div class="gallery-panel-right">';
    }
}
echo '</div>';
?>

Данный код выводит не так как нужно.

Скриншот как сейчас

Нужно так:

Скриншот как надо


Ответы (1 шт):

Автор решения: Darth KYL
$k = 2;
$i = 1;

foreach($gallery_args as $child) {
    if ( $i == 1 || ( ($i - 1) % 5 == 0 && $i >= 5 ) ) {
        echo '<div class="gallery-panel-left">';
    }
    ?>
    <div class="panel-item" style="background: url(<?php bloginfo('template_directory'); ?>/img/gallery-photo4.png) no-repeat;background-size:cover;">
        <div class="gallery-panel-info">
            <div class="gallery-panel-title"><?php echo $child->post_title; ?></div>
            <div class="gallery-panel-description">Классы, в которых мы ждем именно Вас!</div>
        </div>
    </div>
    <?php
    if ( $i == $k ) {
        echo </div><div class="gallery-panel-right">;
        $k += 5;
    }    

    if ( $i != 0 && $i % 5 == 0 ) {
        echo '</div>';  // right end
    }
}

if ( $k < $i || $k == $i || $i % 5 == 0 || ( $i % 5 < 5 && $i % 5 > 2 ) ) {
    echo '</div>'    // close open tag (left or right);
}
→ Ссылка