Расширенная условная логика плагина настраиваемых полей

Я использую плагин ACF (advancedcustomfields.com) для WordPress, чтобы дать администраторам больше контроля.

У меня есть настройка поля повторителя, которая позволит использовать два подполя. 1. Изображение 2. Ссылка. Ссылка будет вести либо на URL, либо на страницу/сообщение.

Я могу сделать это индивидуально, но мне нужна возможность сделать одно или другое.

При настройке условной логики ACF я могу дать администратору возможность выбрать либо URL-адрес, либо ссылку на страницу/публикацию (из раскрывающегося списка).

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

Документация очень помогла со всеми другими вопросами, которые у меня были. Но этот немного не в моей лиге.

Любая помощь будет оценена по достоинству.

http://www.advancedcustomfields.com/resources/getting-started/code-examples/


person avexdesigns    schedule 08.12.2013    source источник
comment
У вас есть образец кода того, что вы пробовали?   -  person Christopher Ellis    schedule 09.12.2013
comment
Если вы используете условную логику, вы должны настроить поле, в котором пользователь выбирает URL-адрес или ссылку на страницу. Разве вы не можете просто использовать get_sub_field() в этом поле, чтобы проверить, какой вариант они выбрали?   -  person AlliterativeAlice    schedule 09.12.2013


Ответы (1)


Предположим, вы используете переключатель для выбора между URL-адресом и раскрывающимся списком страниц/публикаций.

В вашем php-коде, где вы будете создавать href для ссылки, сделайте что-то вроде этого:

<?php if(get_sub_field('link-type')=='url'){
    $myURL = get_sub_field('url-field');
}elseif (get_sub_field('link-type')=='page-post'{
    $myURL = get_sub_field('page-post-selector');
}?>
<a href="<?php echo $myURL; ?>"></a>

Это проверяет значение вашего sub_field «тип ссылки», и если это «url», он использует поле «url-field», а если это «page-post», он использует поле «page-post-selector».

person Joe    schedule 09.02.2015