【问题标题】:Display while loop variable before the loop executes在循环执行之前显示while循环变量
【发布时间】:2019-09-03 16:29:34
【问题描述】:

所以我使用 ACF 中继器来填充内容。我想在 while 循环执行之前显示块顶部的项目总数。我可以在块的底部回显 $counter,这很棒。但显然,在任何东西运行之前,它都是空的,或者出于明显的原因为 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,我都无法获得需要显示的数字。

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      所以,很尴尬。我只是在while循环中咆哮并计算它运行了多少次,然后回应它并且它运行良好。天哪,我的第一个 SO 问题,这是最简单的事情。呃。

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

      【讨论】:

        猜你喜欢
        • 2014-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-01
        • 2020-05-18
        • 1970-01-01
        相关资源
        最近更新 更多