2014-12-19 20 views
0

我的代码的片:ACF直放站领域有不同的计数

<?php 
if(have_rows('our_people')): 
$i = 0; 
while (have_rows('our_people')) : the_row(); ?> 
    <?php $i++; ?> 
    <?php if($i > 3): 
     break; ?> 
    <?php endif; ?> 

    <a class="people-thumb fancybox-inline" href="#fancybox-<?php echo $i;?>"> 
       <div class="people-thumb-image" style="width:172px;height:172px;overflow:hidden;background:transparent url(<?php the_sub_field('people_image'); ?>) no-repeat center center; background-size:cover;"></div> 
       <div class="people-thumb-details"> 
        <h3><?php the_sub_field('people_name_acf'); ?></h3> 
        <p><?php the_sub_field('people_title'); ?></p> 
       </div> 
    </a> 

    <div class="peopleoverlay"> 
     <div id="fancybox-<?php echo $i;?>"> 
     <img src="<?php the_sub_field('people_image'); ?>" width="172" style="float:left;margin:0 10px 10px 0;"> <?php the_sub_field('people_details'); ?> 
     </div> 
    </div> 

<?php endwhile;  

else : 

endif; 
?> 

这里做的事情简单地算项,然后3后停止 - 工作正常。

但是,在中继器字段中的其他行(3之后)我怎样才能让它们也显示?推理是这三个是在一个单独的造型股,而所有其他条目都放在另一个股利。

但是,如果我尝试重复此代码,则不会显示任何内容。所以我必须需要重新设定这个?我想在3之后的所有中继器行显示在不同的部分。

回答

0

看起来你的代码专门说不显示超过3个结果!在下面注释。

$i = 0; // Start a counter 

while (have_rows('our_people')) : the_row(); ?> // As long as there are posts to display 
<?php $i++; ?>   // increment the counter 
<?php if($i > 3): // if the counter is 4 or more... 
    break; ?>    // don't execute the code below; jump out of the while loop. 
<?php endif; ?> 

话虽这么说,除去$i = 0,并以下线:

<?php $i++; ?> 
<?php if($i > 3): 
    break; ?> 
<?php endif; ?> 

这将使ACF显示所有存储在metafield的人。

但是,如果您想为第四个div及其以后的版本添加不同的类,请更改条件,删除break语句,并将结果包装到标识它的div中。

<?php $i++; ?> 
<?php if($i > 3): ?> 
    <div class="other-style"> 
<?php endif; ?> 

然后,你必须在最后用另一张支票关闭它。

... 
<?php if($i > 3): ?> 
    </div> <!-- .other-style --> 
<?php endif; ?>