根据幻灯片的数量显示旋转木马指示器


Php to display carousel indicators depending on number of slides

我有一个bootstrap carousel,目前使用wordpress高级自定义字段来填充它。目前,旋转木马指示器是手动编写的。相反,我会将旋转木马指示器的数量填充为幻灯片的数量。如果有两张幻灯片那么旋转木马指示器中就有两个li

这是我的php:

<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
    <!-- Indicators -->
    <ol class="carousel-indicators">
        <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
        <li data-target="#carousel-example-generic" data-slide-to="1"></li>
        <li data-target="#carousel-example-generic" data-slide-to="2"></li>
    </ol>
    <!-- Wrapper for slides -->
    <div class="carousel-inner">
        <?php $i = 0; ?>
        <?php while(has_sub_field('carousel')): ?>
            <div class="item <?php if($i === 0) { ?> active <?php } ?>">
                <img src="<?php the_sub_field('carousel_image'); ?>" alt="...">
                <div id="carouselLogo"><img src="<?php the_sub_field('carousel_logo'); ?>" alt="..."></div>
            </div>
        <?php ++$i; ?>
        <?php endwhile; ?>
    </div>
  <!-- Controls -->
  <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
  </a>
  <a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
  </a>
</div>

基于while(has_sub_field('carousel')):部分的代码,我假设你有一个数组,你已经存储幻灯片数据-在下面的示例代码中,我已经命名它$slides

<?php
// Get slides and save them to array
// for example $slides = array();
// Open carousel wrapper
$output .= '<ol class="carousel-indicators">';
// Define slide No variable
// Bootstrap list begins with slide No 0, so we start slide numbering with 0    
static   $SlNo = 0;
// Foreach slide, output list item
foreach ($slides as $slide) {
    if ($SlNo == 0 ) {
        // Add class 'active' to first list item
        $output .= '<li data-target="#myCarousel" data-slide-to="' . $SlNo . '" class="active"></li>';
    } else {
        // Output for rest of list items
        $output .= '<li data-target="#myCarousel" data-slide-to="' . $SlNo . '" class=""></li>';
    };
    // Add +1 to slide No
    $SlNo++;
};
// Close carousel wrapper
$output .= '</ol>'n';
// Return and echo output
return $output;
echo $output;
?>

使用下面的代码,我们为$slides数组中的每个幻灯片项创建带有data-slide-to数字的输出列表项。