为了账号安全,请及时绑定邮箱和手机立即绑定

在每个后循环后重置计数器

在每个后循环后重置计数器

PHP
ibeautiful 2022-05-27 16:09:52
我在自定义 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; ?>


查看完整回答
反对 回复 2022-05-27
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信