Поддержка Проблемы и решения Как сократить код при проверке условным оператором

  • Здравствуйте! Через плагин ACF вывожу некоторое количество доп. полей для рубрик. Сейчас приходится проверять каждое поле на заполненность, примерно вот так:

    <?php if($god_vipuska=get_field("god_vipuska",get_category($cat))){?>
    <li>Год выпуска: <?php echo $god_vipuska;?> </li>
    <?php }?>
    
    <?php if($os=get_field("os",get_category($cat))){?>
    <li>ОС: <?php echo $os;?> </li>
    <?php }?>
    
    <?php if($ram=get_field("ram",get_category($cat))){?>
    <li>RAM: <?php echo $ram;?> </li>
    <?php }?>
    
    <?php if($pamiat=get_field("pamiat",get_category($cat))){?>
    <li>Память: <?php echo $pamiat;?> </li>
    <?php }?>
    
    <?php if($batareya=get_field("batareya",get_category($cat))){?>
    <li>Батарея: <?php echo $batareya;?> </li>
    <?php }?>
    
    <?php if($display_tel=get_field("display_tel",get_category($cat))){?>
    <li>Дисплей: <?php echo $display_tel;?> </li>
    <?php }?>
    
    <?php if($text_dlia_logo=get_field("text_dlia_logo",get_category($cat))){?>
    <li><?php echo $text_dlia_logo;?> </li>
    <?php }?>

    Можно ли как-то сократить этот код, например вывести сразу все поля? Может быть есть какая-то функция?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

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

    Не очень понял зачем get_category($cat). Что Вы этой строкой делаете? Поле задано для рубрики? Что в переменной $cat?

    
    <?php 
    $fields = array('god_vipuska', 'os', 'ram', 'pamiat', 'batareya', 'display_tel', 'text_dlia_logo');
    $labels = array('Год выпуска: ', 'ОС: ', 'RAM: ', 'Память: ', 'Батарея: ', 'Дисплей: ', '');
    foreach($fields as $k => $field) :
        if(get_field($field)) : ?>
            <li><?php echo $labels[$k]; the_field($field); ?></li>
        <?php endif;
    endforeach; ?>
    

    (@denisco)

    Не очень понял зачем get_category($cat). Что Вы этой строкой делаете?

    Код нашел на каком-то сайте. Видимо в $cat находится id рубрики. Может эта переменная относится к самому плагину.

    Поле задано для рубрики?

    Да. Есть несколько рубрик на сайте. Я хочу, чтобы при заходе в любую из рубрик, в сайдбаре отображались поля, которые относятся к этим рубрикам. Пробовал ваш код, но поля не выводятся.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Как сократить код при проверке условным оператором» закрыта для новых ответов.