Отображать переменную цикла while перед выполнением цикла - PullRequest
0 голосов
/ 13 апреля 2019

Итак, я использую повторитель ACF для заполнения контента.Я хотел бы отобразить общее количество элементов в верхней части блока еще до того, как цикл while будет выполнен.Я могу отобразить счетчик в нижней части блока, и это здорово.Но очевидно, что прежде чем что-либо запустится, оно будет нулевым или 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 голосов
/ 13 апреля 2019

Итак, довольно неловко. Я просто прогулял цикл while и посчитал, сколько раз он запускался, затем повторил это и все заработало. Святая корова, мой первый ТАК вопрос, и это было САМОЕ ПРОСТОЕ. Тьфу.

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

     endwhile; 
    ?>
    <?php echo $vid_total ?>
</p>
0 голосов
/ 13 апреля 2019

Вы должны получить объект поля, а затем считать строки.пример:

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

Может быть, вы хотите проверить, является ли объект массивом, прежде чем считать, потому что это может быть строка, int или массив.

edit: если вы хотитеЧтобы загрузить объект из другого сообщения, необходимо присвоить идентификатор сообщения методу get_field () - просто проверьте документацию

Документация по методу get_field (): get_field () Документирование

Документация для метода count (): php count ()

...