@Stanislav6

Как скрыть группу полей Advanced Custom Fields если поля пустые?

Здравствуйте!

Ребята, помоги решить проблему с тем, как скрыть пустую группу полей, если ни одно поле не заполнено.

Есть код вывода группы полей:
<?php

    $icons = get_field('icons-group');  

    if( $icons ): ?>
    <div class="icons-group">
        <h3><?php the_title(); ?></h3>
        <div class="icons">
            <?php if ( $icons['icon-1'] ): ?><span class="icon-item"><?php echo $icons['icon-1']; ?></span><?php endif; ?>
            <?php if ( $icons['icon-2'] ): ?><span class="icon-item"><?php echo $icons['icon-2']; ?></span><?php endif; ?>
            <?php if ( $icons['icon-3'] ): ?><span class="icon-item"><?php echo $icons['icon-3']; ?></span><?php endif; ?>
            <?php if ( $icons['icon-4'] ): ?><span class="icon-item"><?php echo $icons['icon-4']; ?></span><?php endif; ?>
            <?php if ( $icons['icon-5'] ): ?><span class="icon-item"><?php echo $icons['icon-5']; ?></span><?php endif; ?>
            <?php if ( $icons['icon-6'] ): ?><span class="icon-item"><?php echo $icons['icon-6']; ?></span><?php endif; ?>
        </div>
    </div>

<?php endif; ?>


В таком виде незаполненные поля не выводятся, однако контейнер <div class="icons-group"> и заголовок <h3><?php the_title(); ?></h3> выводится.
Подскажите пожалуйста, каким образом скрыть контейнер <div class="icons-group">, если в группе полей $icons = get_field('icons-group') не заполнено ни одного поля.
Несколько дней безрезультатно бьюсь.
Умоляю!
  • Вопрос задан
  • 783 просмотра
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
1. Вы проверяете в вашем IF не приводится ли $cions к true. Но $icons, как я предполагаю, является массивом.
2. Сделайте var_dump($icons); перед вашим IF и посмотрите что внутри.
3. Исходя из результата скорректируйте условие IF.

Скорее всего у вас там массив такого вида (приблизительно):
$icons = [
    'icon-1' => '',
    'icon-2' => '',
    ...
];

А такой массив не является пустым. Пустыми являются элементы этого массива.
Ответ написан
ssenj
@ssenj
HTML, CSS, PHP, WordPress, Bitrix
А что, если сделать так?
<?php
$icons = [
    'icon-1' => '',
    'icon-2' => '',
    'icon-3' => '1',
    'icon-4' => '',
];

$countIcons = 0;
foreach ($icons as $icon) {
  if ($icon) {
    ++$countIcons;
  }
}

if ($countIcons): ?>

  Выводим верстку
  
<?php endif;?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы