如果ACF Repeater子字段为空,则隐藏div容器

时间:2018-07-27 06:30:31

标签: php advanced-custom-fields

我有一个ACF中继器。如果中继器中的子字段为空,如何隐藏“品牌”类的div?

<?php if( have_rows('partners', 'option') ): ?>
<div class="brand">
    <div class="container">
        <?php
                while ( have_rows('partners', 'option') ) : the_row(); ?>

                <div class="single-brand">
                    <?php 
                    $partner_logo = get_sub_field('partner_logo', 'option');
                    if( !empty($partner_logo) ): ?>
                        <img src="<?php echo $partner_logo['url']; ?>" alt="<?php echo $partner_logo['alt']; ?>" />
                    <?php endif; ?>
                </div>
        <?php   
                endwhile;

        ?>
    </div>
</div>
<?php endif; ?>

1 个答案:

答案 0 :(得分:1)

我认为这可以解决您的问题。

<?php if( have_rows('partners', 'option') ): ?>
  <?php 
        $flag = 0;
        while ( have_rows('partners', 'option') ) : the_row(); 
           $partner_logo = get_sub_field('partner_logo', 'option');
           if($partner_logo){
              $flag = 1;
           }
        endwhile;
    endif;
?>
<?php if($flag == 1):?>
<div class="brand">
    <div class="container">
        <?php  while ( have_rows('partners', 'option') ) : the_row(); ?>
          <div class="single-brand">
          <?php 
              $partner_logo = get_sub_field('partner_logo', 'option'); ?>
              <img src="<?php echo $partner_logo['url']; ?>" alt="<?php echo $partner_logo['alt']; ?>" />
           </div>
        <?php   
                endwhile;

        ?>
    </div>
</div>
<?php endif; ?>