Условная логика

Обзор

Условная логика позволяет вам устанавливать правила, определяющие, когда произвольное поле должно отображаться, на основе значений других полей в той же группе полей. Вкладка настроек «Условная логика» доступна для большинства типов полей ACF, предоставляя вам высокую степень контроля над тем, как поля представляются редакторам контента.

Условная логика в ACF обычно применяется внутри группы полей. Она не контролирует, где будет отображаться сама группа полей, что обрабатывается правилами расположения в настройках группы полей.

Скриншоты

Поля Email и Изображение с примененными настройками условной логики, чтобы они отображались только тогда, когда пользователь вводит значение в поле «Имя автора».

Поля Email и Изображение с примененными настройками условной логики, чтобы они отображались только тогда, когда пользователь вводит значение в поле «Имя автора».

Первый из двух скриншотов редактируемой записи в WordPress с отображенной группой полей «Информация об авторе». На этом скриншоте поле «Имя автора» пустое, и другие поля не отображаются.

Поле «Имя автора» в том виде, в каком оно появляется у редакторов контента до ввода данных.

На втором скриншоте введено значение для «Информации об авторе», и поля Email и Изображение теперь видны и готовы к вводу данных.

Условная логика в действии. Пользователь ввел значение для «Имени автора», что привело к отображению других полей в группе.

Базовое использование

Вкладка «Условная логика» изначально представляет вам один переключатель, позволяющий включить ее. Вы можете сделать это с любым полем, даже с первым полем в новой группе полей. Однако в этом случае вы не сможете создавать правила, так как нет других полей, на которых можно было бы их основывать.

Вкладка «Условная логика» немаркированного текстового поля в группе полей, где нет других полей. Выпадающие списки для создания правил видны, но выборы останутся пустыми, пока не будет создано хотя бы еще одно поле.

Каждое правило условной логики состоит из трех выпадающих списков. Щелчок по первому выпадающему меню отображает список полей, находящихся в данный момент в группе полей. Второй выпадающий список определяет условие, которое должно быть выполнено. Третий выпадающий список дополнительно определяет эти условия конкретными значениями.

Условия

Существует шесть возможных условий, которые вы можете выбрать при создании этих правил. Отображаемые условия основаны на типе поля, выбранного в первом выпадающем списке. Некоторые поля не могут соответствовать определенным условиям, поэтому эти параметры не отображаются при применении логики на основе этих полей.

  • Имеет любое значение
  • Не имеет значения
  • Значение равно
  • Значение не равно
  • Значение соответствует шаблону
  • Значение содержит

Если вы не можете определить значения или варианты выбора при создании поля, вы не можете указать конкретные значения или шаблоны при использовании условной логики. Единственное «значение», которое можно прочитать в этом случае, — это то, было ли в поле введены данные или нет.

Например, выбор поля «Изображение» в первом выпадающем списке ограничит вас выбором между «Имеет любое значение» и «Не имеет значения» во втором. Это связано с тем, что «значение» поля «Изображение» основано на том, есть ли в нем содержимое. Условие считается выполненным, если изображение присутствует (или нет). Вы можете убедиться, что само изображение соответствует определенным спецификациям, внеся изменения в настройки валидации поля «Изображение».

Установка нескольких правил

Точный метод добавления дополнительных правил зависит от вашей цели. Несколько правил для условной логики в ACF следуют принципу «и/или». Если вы хотите, чтобы выполнялись два или более условий, вы используете «и». Вы бы использовали «или» для ситуаций, когда выполнения любого из условий достаточно для ваших целей.

Нажмите «и» в конце любого правила, чтобы продублировать его. Измените новое правило как обычно через выпадающее меню и нажмите «Сохранить изменения», чтобы сохранить его в вашей группе полей. Это гарантирует, что для выполнения условия будут соблюдены оба правила.

 

Условная логика в ACF с использованием нескольких правил. В этом случае и поле «Информация об авторе», и поле Email должны содержать значение, чтобы поле «Изображение» отображалось.

Нажмите «Добавить группу правил» под текущим правилом, чтобы добавить правило «или». Сделайте свои выборы в выпадающих меню и нажмите «Сохранить изменения». В этом случае условная логика будет применена, если выполняется любое из условий.

Еще один вид условной логики в ACF с использованием нескольких правил. В этом случае либо поле «Информация об авторе», либо поле Email должно содержать значение, чтобы поле «Изображение» отображалось. Достаточно, чтобы значение было хотя бы в одном из этих полей, и поле «Изображение» будет показано.

Чтобы удалить правила, наведите курсор на конец правила и щелкните значок минуса, когда он появится.

Противоречивая условная логика

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

Например, вы можете настроить правило, которое гласит, что определенное условие выполняется только тогда, когда поле «Истина/Ложь» одновременно и отмечено, и не отмечено. Это явно невозможно выполнить.

Настройка условной логики с двумя взаимоисключающими правилами. Первое указывает, что условие выполнено, когда флажок «Истина/Ложь» отмечен, а второе указывает, что условие выполнено, когда флажок не отмечен. Поскольку они были созданы как правила «и», условия никогда не могут быть выполнены.

Как использовать условную логику

Это краткое руководство демонстрирует, как использовать условную логику, чтобы предоставить редакторам контента наиболее подходящее поле на основе предыдущего выбора, который они сделали. Первый шаг — создать группу полей под названием «Детали события» со следующими полями:

  • Поле «Переключатель»
  • Поле «Выбор даты и времени»
  • Поле «Google Карта»
  • Поле «URL»

 

Группа полей ACF с четырьмя полями: переключатель с меткой «Тип события», выбор даты и времени с меткой «Дата и время события», поле «Google Карта» с меткой «Карта события» и поле «URL» с меткой «Ссылка на событие».

Затем щелкните на поле «Переключатель» и дайте ему описательную метку, например «Тип события». Заполните две записи в поле «Выбор»: Физическое и Виртуальное. Вы будете использовать эти варианты в качестве основы для вашей условной логики.

Единственное изменение, которое вам нужно будет сделать для поля «Выбор даты и времени», — это дать ему метку, например «Дата и время события». Оно будет появляться для обоих типов событий, поэтому пока нет причин использовать условную логику.

Последние два поля, «Google Карта» и «URL», — это где вы определите настройки условной логики. Назначьте метку, например «Карта события», полю «Google Карта» и щелкните на вкладке «Условная логика».

Нажмите переключатель «Условная логика», чтобы установить первое правило. Первый выпадающий список по умолчанию установлен на первое поле в группе, но вы можете щелкнуть по нему, чтобы изменить его на другое поле. В этом случае оставьте его установленным на «Тип события». Щелкните второй выпадающий список и выберите «Значение равно». Наконец, щелкните третий выпадающий список и выберите «Физическое».

Затем нажмите кнопку «и» в конце правила, чтобы добавить второе правило. На этот раз установите первый выпадающий список на «Дата и время события», а второй на «Имеет любое значение». Это гарантирует, что редакторы контента не увидят поле «Google Карта» до тех пор, пока не выберут тип события и не укажут время и дату.

Для поля «Google Карта» установлены два правила условной логики, гарантирующие, что оно будет отображаться редакторам контента только после того, как они введут тип события, а также дату и время.

Последний шаг — настроить аналогичное правило для поля «URL». Откройте поле и назначьте метку, например «Ссылка на событие». Щелкните на вкладке «Условная логика» и повторите процесс из предыдущего шага, но на этот раз установите третий выпадающий список на «Виртуальное».

В качестве альтернативы вы можете установить второй выпадающий список на «Значение не равно» и оставить третий установленным на «Физическое». Это позволит вам создавать больше типов виртуальных событий в переключателе «Тип события», гарантируя при этом, что только физические события отображают поле «Google Карта», а все виртуальные события отображают поле «URL».

Условная логика для поля «URL» требует только одного правила. В этом случае оно будет отображать поле, когда редактор контента выбирает «Виртуальное» в поле «Переключатель».

 

Наконец, нажмите «Сохранить изменения», чтобы сохранить новые правила условной логики в вашей группе полей. Вы можете начать новую запись, чтобы увидеть условную логику в действии.

Вид редактора записей WordPress, показывающий некоторые из новых произвольных полей. Редактор выбрал физическое событие и ввел дату и время, поэтому отображается поле «Google Карта».