Как в цикле get_posts() добавить разные классы блокам div
Есть массив с названиями классов.
$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();
?>
Ответы (2 шт):
Автор решения: Anton Mironov
→ Ссылка
Не знаю, что является результатом выполнения функции 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
}
}
Автор решения: evgeni2306
→ Ссылка
<div class="<?echo $className ?>">
Не знаю, что get_posts делает, но предположительно возвращает какой-то массив, предположительно длиной 5, как указано при вызове функции. Так что можно foreach на for заменить, и вместо $className $array[$i] вставить