所以我正在使用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,我都无法获得需要显示的数字。
答案 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>