ACF foreach 只显示最后一个值

时间:2021-03-24 21:14:03

标签: php wordpress advanced-custom-fields

在学习 PHP 时需要一些帮助:) 下面第三个 ACF 中继器中的 foreach 循环仅输出数组的最后一个值。 vardump 显示整个数组似乎是正确的。

def apply_twice(f):
    def apply(x):
        return f(f(x))
    return apply

square_2x=apply_twice(lambda x: x*x)
square_2x(4)
# 256

1 个答案:

答案 0 :(得分:0)

我已经在评论中回答了,但这里是固定代码:

<?php if (have_rows('product_table')) : ?>
    <?php while (have_rows('product_table')) : the_row(); ?>
        <?php $tcols = array(); ?>
    <table>
      <h3><?php the_sub_field('product_table_title'); ?></h3>
        <?php if (have_rows('product_table_columns')) : ?>
            <?php while (have_rows('product_table_columns')) : the_row(); ?>
                <?php $product_table_column_selected_option = get_sub_field('product_table_column'); ?>
                <?php if ($product_table_column_selected_option) : ?>
              <th><?php echo esc_html($product_table_column_selected_option['label']); ?></th>
                    <?php $tcols[] = esc_html($product_table_column_selected_option['value']); ?>
                <?php endif; ?>
            <?php endwhile; ?>
        <?php endif; ?>

        <?php if (have_rows('product_table_products')) : ?>
            <?php while (have_rows('product_table_products')) : the_row(); ?>
                <?php $product_table_product = get_sub_field('product_table_product'); ?>
                <?php if ($product_table_product) : ?>
                    <?php foreach ($tcols as $tcol) {
                        $tdata = get_field($tcol, $product_table_product);
                        echo '<tr><td>';
                        echo $tdata;
                        echo '</td></tr>';
                    }
                    ?>
                <?php endif; ?>
            <?php endwhile; ?>
        <?php endif; ?>
    </table>
    <?php endwhile; ?>
<?php endif; ?>

问题是这里的行尾有一个 ;<?php foreach($tcols as $tcol); { 这会停止处理。删除它可以解决问题。