Как в цикле get_posts() добавить разные классы блокам div

Рейтинг: 0Ответов: 2Опубликовано: 23.03.2023

Есть массив с названиями классов.

$array = array("item-one", "item-two", "item-three", "item-four", "item-five");

Как их добавить блокам выводимым циклом get_posts()?

<div class="block__item item-one"> <div class="block__item item-two"> и так далее...

<?php
global $post;
$array = array("item-one", "item-two", "item-three", "item-four", "item-five");
$myPosts = get_posts([
    'numberposts' => 5,
]);
if ($myPosts) {
    foreach ($myPosts as $post) {
        setup_postdata($post);
        ?>
         <div class="block__item">
           <?php the_post_thumbnail(array(
               'class' => 'block__icon'
           )); ?>
         </div>
        <?php
    }
}
wp_reset_postdata();
?>

Ответы

▲ 1Принят

Не знаю, что является результатом выполнения функции get_posts (не знаком с ВП). Но вижу, что скорее всего вы выводите 5 постов, при этом в массиве у вас 5 классов, тогда можно сделать так:

if ($myPosts) {
    $i = 0;
    foreach ($myPosts as $post) {
        setup_postdata($post);
        ?>
         <div class="block__item <?=$array[$i++]?>">
           <?php the_post_thumbnail(array(
               'class' => 'block__icon'
           )); ?>
         </div>
        <?php
    }
}
▲ 1
 <div class="<?echo $className ?>">

Не знаю, что get_posts делает, но предположительно возвращает какой-то массив, предположительно длиной 5, как указано при вызове функции. Так что можно foreach на for заменить, и вместо $className $array[$i] вставить