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

Как обернуть div'ом исключая первую выборку из foreach?

имеется макет:
5de1bf1ae7f92013175327.png

и код:

<div class="row">
            <?php
            $mainpost = get_posts( array(
                'numberposts' => 3,
                'meta_query' => array(
                    array(
                        'key'   => 'show_in_main',
                        'value' => '1',
                    )
                )
            ) );
                foreach( $mainpost as $post ) { ?>
                    <div class="col-8">
                        <?php the_post_thumbnail(); ?>
                    </div>
                <?php } ?>
        </div>


первый пост должен быть
<div class="col-8"></div>

второй и третий обернуты в ROW с классом col-12
<div class="row">
    <div class="col-12">второй пост</div>
    <div class="col-12">третий пост</div>
</div>


возможно ли реализовать через, например, $count ==1; $count ++; ?
  • Вопрос задан
  • 219 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Вот так:
<?php foreach( $mainpost as $i => $post ) { ?>
    <?php if ($i == 1): ?>
        <div class="row">
    <?php endif; ?>
    <?php if ($i == 0): ?>
        <div class="col-12">
    <?php else: ?>
        <div class="col-8">
    <?php endif; ?>
        <?php the_post_thumbnail(); ?>
    </div>
<?php } ?>

</div>


Но это, конечно, говнокод лютый, поди разберись. Правильнее будет вывести сначала 1 превью, потом вторую:
<div class="row">
    <div class="col-12">
        <?php foreach( $mainpost as $i => $post ): if ($i == 0):?>
            <?php the_post_thumbnail(); break; ?>
        <?php endif; endforeach; ?>
    </div>
</div>
<div class="col-8">
    <?php foreach( $mainpost as $i => $post ): if ($i > 0): ?>
        <?php the_post_thumbnail(); ?>
    <?php endif; endforeach; ?>
</div>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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