Advanced Custom Fields select field: Как вывести метку, а не значение?

7 янв. 2013 г., 02:04:00
Просмотры: 45K
Голосов: 5

Я использую плагин Advanced Custom Fields для WordPress.

Этот вопрос касается поля select, и в документации описано только как вывести значение, но не метку/название.

Я не могу найти такой функционал в документации и хотел узнать, есть ли у кого-нибудь идеи?

Например, для создания содержимого поля Select используется следующий формат...

gb : English
fr : Français  
it : Italiano
de : Deutsch
pt : Português
es : Español
nl : Nederlands
be : Belgian
dk : Dansk
fi : Suomi
no : Norske
cz : Český
pl : Polski
hu : Magyar
ch : Schweiz
at : Österreich
eu : International


Затем для вывода пишем так...

<?php the_field('language'); ?>


Например, если я выбираю Polski в редакторе записей, PHP выведет следующее значение...

pl


Мне интересно, возможно ли вывести метку - я хочу иметь возможность выводить как Polski, так и значение pl.

Если кто-то знает документацию о том, как это сделать, или может помочь с решением, это было бы замечательно.

Заранее спасибо.

1
Комментарии

Это очень просто, просто установите Формат возврата в значение Оба (Массив) в настройках ACF для этого поля. Затем, при вызове этого поля в PHP, вы можете сделать это так: $lang = get_field('language'); echo $lang['label'] . ' - это метка, ' . $lang['value'] . ' - а это значение.';

djboris djboris
17 окт. 2018 г. 22:42:33
Все ответы на вопрос 3
0
18

Функция get_field_object() требует КЛЮЧ поля, а не его НАЗВАНИЕ. См. документацию: http://www.advancedcustomfields.com/resources/functions/get_field_object/

Таким образом, код должен выглядеть примерно так...

$field = get_field_object('field_53d27f5599979');
$value = get_field('field_myfield');
$label = $field['choices'][ $value ];

Вы можете найти ключ поля, нажав на "Настройки экрана" > "Показать ключ поля", и он появится рядом с типом поля. Смотрите прикрепленную анимированную gif-запись ниже.

Показать ключ поля

9 авг. 2014 г. 22:57:10
2

Привожу решение для удобства чтения.

$field = get_field_object('field_name');
$value = get_field('field_name');
$label = $field['choices'][ $value ];

Значение в переменной $label будет соответствовать метке, связанной со значением в переменной $value.

9 апр. 2014 г. 23:06:06
Комментарии

Документация ACF ошибочна в этой части. Вам нужно использовать field key для get_field_object.

Вот так: get_field_object( 'field_5682538b28a71' );

Чтобы получить ключ поля, когда вы находитесь в редакторе ACF, откройте Screen Options и включите отображение ключей полей

Andrew Lazarus Andrew Lazarus
30 дек. 2015 г. 16:39:30

@AndrewLazarus Ключ поля больше не обязателен. Метод прекрасно работает с названием поля.

Jacob Raccuia Jacob Raccuia
31 окт. 2017 г. 08:14:36
0

На случай, если это поможет кому-то другому.

Для вывода значения поля select в ACF:

$a = get_field_object('field_1234567');
echo $a['value'];

(где field_1234567 - это ключ поля, полученный путем выбора 'Показать ключ поля' в настройках экрана)

2 дек. 2015 г. 00:06:40