在执行循环之前显示while循环变量

时间:2019-04-12 21:20:04

标签: wordpress while-loop advanced-custom-fields

所以我正在使用ACF中继器来填充内容。我想在while循环执行之前在块顶部显示项目总数。我可以在块的底部回显$ counter,这很棒。但是很明显,在任何事情运行之前,它为null或出于明显原因而为0。我只是不确定在循环运行之前如何在循环外显示$ counter。

                <div class="col-sm-12 text-left">
                    <p><strong>Total Videos:</strong>
                        <?php var_dump($counter); ?>
                    </p>
                </div>

                <?php if ( have_rows( 'choir_videos' ) ) :
                    $counter = 0;
                    while ( have_rows( 'choir_videos' ) ) : the_row(); 
                    $counter++;
                ?>

                ```
                html block
                ```

                <?php 
                endwhile; endif; 
                ?>

                <div class="col-sm-12 text-left">
                    <p><strong>Total Videos:</strong>
                        <?php echo $counter ?>
                    </p>
                </div>

当前,$ counter正按预期在已执行代码的底部运行。顶部的$ counter会返回NULL,这与预期的一样,因为$ counter还不是问题。无论何时以及如何设置$ counter = 0,我都无法获得需要显示的数字。

2 个答案:

答案 0 :(得分:0)

您必须获取字段对象,然后计算行数。例如:

$object = get_field('choir_videos');
$item_count = count($object);

也许您想在计数之前检查该对象是否为数组,因为它可以是字符串,整数或数组。

编辑:如果要从另一个帖子中加载对象,则必须将帖子ID分配给get_field()方法-只需检查文档

get_field()方法的文档: get_field() documentiation

count()方法的文档: php count()

答案 1 :(得分:0)

所以,很尴尬。我只是简单地遍历while循环并计算了它运行了多少次,然后回显了它,并且效果很好。天哪,我的第一个SO问题是最简单的事情。 gh。

<p><strong>Total Videos:</strong>
    <?php 
        $vid_total = 0;
        while ( have_rows( 'choir_videos' ) ) : the_row(); 
        $vid_total++;

     endwhile; 
    ?>
    <?php echo $vid_total ?>
</p>