我在自定义 post 类型循环中有一个 ACF 中继器,该循环带有一个计数器,每两个 col-md-6 围绕一行。当我有偶数个 col 时,这很有效,但当它不均匀时就不行了。当一篇文章的列数不均匀时,计数器会以某种方式记住下一篇文章,并且只在第一行显示一个列。在这里,您将找到当前代码和正在发生的事情的小图片。不知何故,我需要在每次发布循环后重置计数器,但无法弄清楚。wp_reset_postdata 似乎不起作用。<?php $args = array( 'post_type' => 'posttypename', 'posts_per_page' => '-1' ); $the_query = new WP_Query( $args ); ?><?php if ( $the_query->have_posts() ) : ?><?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?><div> <div class="container"> <div class="row"> <div class="col-md-12"> <h1><?php the_title(); ?></h1> </div> </div> <?php if( have_rows('row') ): ?> <div class="row"> <?php while( have_rows('row') ): the_row(); $text = get_sub_field('text'); ?> <div class="col-md-6"> <?php echo $text; ?> </div> <?php $counter++; if($counter % 2 === 0) : echo '</div> <div class="row">'; endif; ?> <?php endwhile; ?> </div> <?php endif; ?> </div></div><?php endwhile; ?><?php wp_reset_postdata(); ?><?php endif; ?>
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
只是一个小小的改变。您需要确保在循环acf开始之前将您的计数器重置为 0。
<?php $counter = 0; //Initialize your Counter here before the Loop Starts for each Post ?>
<?php if( have_rows('row') ): ?>
<div class="row">
<?php while( have_rows('row') ): the_row(); $text = get_sub_field('text'); ?>
<div class="col-md-6">
<?php echo $text; ?>
</div>
<?php $counter++; if($counter % 2 === 0) : echo '</div> <div class="row">'; endif; ?>
<?php endwhile; ?>
</div>
<?php endif; ?>
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消