За последние 24 часа нас посетили 24042 программиста и 1677 роботов. Сейчас ищут 1807 программистов ...

Вопрос по php функциям

Тема в разделе "Wordpress", создана пользователем Griasha, 10 дек 2017.

  1. Griasha

    Griasha Новичок

    С нами с:
    10 дек 2017
    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте!
    Имеются два кода
    1.
    PHP:
    1. <?php $image = get_post_meta($post->ID, 'new', true); ?>
    2.   <?php if ($image) { ?><img src="/wp-content/uploads/2017/12/novinka.png" class="new_image" /><?php } ?>
    2.
    PHP:
    1. <?php $image = get_post_meta($post->ID, 'old_price', true); ?>
    2.   <?php if ($image) { ?><img src="/wp-content/uploads/2017/12/action.png" class="action_image" /><?php } ?>
    Выводящие картинки, если задано произвольное поле.
    Как между этими двумя функциями поставить исключающее или, то есть, если заданы оба произвольных поля, картинка должна выводится одна(сработать только одна функция-любая). Соответственно, если задано одно произвольное поле-сработает та функция для которой задано поле.
    Всем заранее спасибо, надеюсь задача не сложная, просто я в php (0)
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Griasha, например, можно во второй участок кода добавить проверку значения переменной $image.
    PHP:
    1. <?php if(!$image) { $image = get_post_meta($post->ID, 'old_price', true); ?>
    2. <?php if ($image) { ?><img src="/wp-content/uploads/2017/12/action.png" class="action_image" /><?php } }?>
     
    Griasha нравится это.
  3. Griasha

    Griasha Новичок

    С нами с:
    10 дек 2017
    Сообщения:
    8
    Симпатии:
    0
    Спасибо, работает. Не могли бы Вы подробнее рассказать, как это работает, чтобы в следующий раз не задавать таких вопросов?
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    В строке 1 проверяется значение переменной $image. Ранее оно было инициализировано при вызове функции get_post_meta из первого блока кода.
    Если оно было установлено в значение, приводимое к логическому false (0, null, false), то можно повторить попытку получения изображения.
    Если же в первом участке кода была получена картинка, то второй участок кода пропускается.
    Управляющие конструкции
     
    Griasha нравится это.
  5. Griasha

    Griasha Новичок

    С нами с:
    10 дек 2017
    Сообщения:
    8
    Симпатии:
    0
    Спасибо!