计算acf(repeater-field)中的行,并为每行添加html输出

时间:2019-07-09 14:38:46

标签: advanced-custom-fields

我想为ACF转发器字段的每一行输出一个列表元素(

  • )。一旦创建了新行,就应使用计数器的值(向上计数)创建一个新的列表元素。

    这是代码。列表元素应根据行数提示:

    HTML:

    <ul>
                         <li data-id="1" class="active">1</li>
                            <li data-id="2">2</li>
                            <li data-id="3">3</li>
                            <li data-id="4">4</li>
                            <li data-id="5">5</li>
                            <li data-id="6">6</li>
                            <li data-id="7">7</li>
                            <li data-id="...">...</li>
    
    
                        </ul>
    

    PHP(ACF):

      <?php
                    $i = 1;
                    if (have_rows('referenz-slide')) :
                        $counter = 0;
                        while (have_rows('referenz-slide')) : the_row();
                        $counter++;
    
                            // vars
                            $title = get_sub_field('title');
                            $link = get_sub_field('link');
                            $text = get_sub_field('text');
    
                            ?>
    
                            <?php $state = "";
                            if ($i == 1) {
                                $state = "active";
                            } else {
                                $state = "hidden";
                            } ?>
    
                            <div class="referenz-content <?php echo $state; ?>" id="ref-<?php echo $i; ?>" data-referenz="<?php echo $i; ?>">
                                <h4 class="referenz-headline"><?php echo $title; ?></h4>
                                <p><?php echo $text; ?></p>
                                <a href="<?php echo $link['url']; ?>" target="_blank" title="Jetzt mehr erfahren" class="btn btn-referenz">Jetzt mehr erfahren</a>
    
                            </div>
    
                            <?php $i++;
                        endwhile; ?>
    
                    <?php else : ?>
    
                    <?php endif; ?>
                    <?php wp_reset_postdata(); ?>
    

    我想根据ACF行的数量增加列表项和数据ID(html输出)的值。有人可以帮忙吗?

  • 1 个答案:

    答案 0 :(得分:1)

    所以您几乎已经拥有了一切

    <ul>
    <?php while (have_rows('referenz-slide')) : the_row();?>
    
        <li data-id="<?php echo $i;?>" class="<?php echo $state; ?>">
            <?php echo $i;?>
        </li>
    
    <?php $i++; ?>
    <?php endwhile; ?>
    </ul>