@Alex-Broudy

Как вывести значение одного произвольного поля ACF, если выбрано значение в другом поле типа «Выбор» (select)?

Всем привет!

Использую плагин ACF для работы с произвольными полями.
Создал поля для вывода ссылок в шаблоне страницы и поместил их в переменные:

$gotlink_1 = get_field('mylink_1',$block_id);
$gotlink_2 = get_field('mylink_2',$block_id);
$gotlink_3 = get_field('mylink_3',$block_id);
$gotlink_4 = get_field('mylink_4',$block_id);
$gotlink_5 = get_field('mylink_5',$block_id);


так же создал произвольное поле типа "Выбор (select)" с выводом значения и поместил в переменную $selected_link

$selected_link = get_field('select_link',$block_id); // поле выбор (select)


и запилил туда значения:

Ссылка 1
Ссылка 2
Ссылка 3
Ссылка 4
Ссылка 5

- - -

и вот есть переменная $main_link для которой нужно создать условие и проверку, а именно:

если поле $selected_link не пустое и имеет значение Ссылка 1, то в переменной $main_link выводим значение переменной $gotlink_1

аналогично и для остальных:

если поле $selected_link не пустое и имеет значение Ссылка 2, то в переменной $main_link выводим значение переменной $gotlink_2
если поле $selected_link не пустое и имеет значение Ссылка 3, то в переменной $main_link выводим значение переменной $gotlink_3
и т.д.

В самом шаблоне вывожу вот так и все работает:

<?php if( $selected_link == 'Ссылка 1' ): ?><? echo $gotlink_1 ?><?php endif; ?>
<?php if( $selected_link == 'Ссылка 2' ): ?><? echo $gotlink_2 ?><?php endif; ?>
<?php if( $selected_link == 'Ссылка 3' ): ?><? echo $gotlink_3 ?><?php endif; ?>
<?php if( $selected_link == 'Ссылка 4' ): ?><? echo $gotlink_4 ?><?php endif; ?>
<?php if( $selected_link == 'Ссылка 5' ): ?><? echo $gotlink_5 ?><?php endif; ?>


Но в каждом месте, где мне нужно указать ссылку это слишком громоздко

Простыми словами что требуется реализовать?

Есть поля с ссылками.
В шаблоне где указана переменная $main_link нужно выводить только одну ссылку из списка, название которой было выбрано в select в админке в произвольном поле $selected_link = get_field('select_link',$block_id);

Конечно, я мог бы список ссылок засунуть сразу в select и выводить где хочу, но на одной странице мне нужно будет выводить и по 2-3 ссылки независимо от выбора select, поэтому я так заморочился

Где выводить полученное значение нужно:
<a href="<?php echo $main_link ?>">Перейти к просмотру</a>


Буду благодарен помощи или совету.
P.S.: пробовал реализовать проверку и задать условие используя тернарные операторы, но что-то не выходит совсем..
  • Вопрос задан
  • 282 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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