Подсчитайте изображения в php и добавьте класс на ul - PullRequest
0 голосов
/ 14 ноября 2018

Как я могу добавить определенный класс к ul на основе количества изображений?

Так, когда есть 2 изображения, ul получает class"images one-photo" и когда есть 5 изображений, ul получает классclass"images five-photo" и так далее ...

Что у меня сейчас есть в коде :

<?php if( have_rows('blog_item') ): ?>
    <?php while( have_rows('blog_item') ): the_row(); ?>

<ul class="images">
    <?php if( get_sub_field('photo-01') ): ?>
        <li><img src="https://www.website.com/<?php the_sub_field('photo-01'); ?>" alt="" /></li>
    <?php endif; ?>

    <?php if( get_sub_field('photo-02') ): ?>
        <li><img src="https://www.website.com/<?php the_sub_field('photo-02'); ?>" alt="" /></li>
    <?php endif; ?>

    <?php if( get_sub_field('photo-03') ): ?>
        <li><img src="https://www.website.com/<?php the_sub_field('photo-03'); ?>" alt="" /></li>
    <?php endif; ?>
</ul>
    <?php endwhile; ?>
<?php endif; ?>

1 Ответ

0 голосов
/ 14 ноября 2018

Нечто подобное пришло бы на ум:

<?php
$count = 0;
$image_display = '';
for($i=1 ; $i <= 3; $i++){
  if( get_sub_field('photo-0'.$i) ):
      $count++; // count photos here
      $image_display .= '<li><img src="https://www.website.com/'.the_sub_field("photo-0".$i).'" alt="" /></li>';
  endif;
}
$class = '';
switch ($count) {
    case 1: $class = 'one-photo';break;
    case 2: $class = 'two-photo';break;
    case 3: $class = 'three-photo';break;
    case 4: $class = 'four-photo';break;
    case 5: $class = 'five-photo';break;
}

echo '<ul class="images '.$class.'">'. $image_display.'</ul>';
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...