我在一个自定义帖子类型循环中有一个ACF中继器,该循环中带有一个计数器,该计数器在每两个col-md-6周围产生一行。当我有偶数个col时,这很好用,但是当它不均匀时,则不行。当某个帖子的col数量不均匀时,计数器会以某种方式记住下一个帖子的信息,并且仅在第一行显示一个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; ?>
答案 0 :(得分:1)
只有一个小小的变化。您需要确保在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; ?>