Как получить значения select, созданные плагином ACF в WordPress
По сути, я хочу отобразить поле выбора, чтобы администратор мог выбрать опцию при создании или редактировании категории - отображать категорию на главной странице с изображением или нет.
Я использую плагин Advanced Custom Fields для добавления select box на странице категорий.
Я создал группу пользовательских полей display с:
field label : Select to display
field name : select_to_display_
field type : Select
options : no,yes
Правила размещения: Taxonomy term add/edit равно categories.
Как только я создаю пользовательское поле, значения сохраняются в базе данных в таблице wp_postmeta
как:
meta_key:field key value
meta_value:a:12:{s:3:"key";s:19:"field_51d53f2ed1236";s:5:"label";s:17:"Select to display";s:4:"name";s:18:"select_to_display_";s:4:"type";s:6:"select";s:12:"instructions";s:0:"";s:8:"required";s:1:"0";s:7:"choices";a:2:{s:2:"NO";s:2:"NO";s:3:"YES";s:3:"YES";}s:13:"default_value";s:0:"";s:10:"allow_null";s:1:"0";s:8:"multiple";s:1:"0";s:17:"conditional_logic";a:3:{s:6:"status";s:1:"0";s:5:"rules";a:1:{i:0;a:3:{s:5:"field";s:19:"field_51d53f2ed1236";s:8:"operator";s:2:"==";s:5:"value";s:2:"NO";}}s:8:"allorany";s:3:"all";}s:8:"order_no";i:0;}
Когда я перехожу в панель управления->записи->категории, я могу отобразить поле выбора с опциями, но когда я выбираю любую опцию и нажимаю "обновить", она обновляется.
Но в index.php
:
echo get_field(' select_to_display_'); //здесь ничего не отображается
$field = get_field_object('field_51d3f9c3f5554');
if($field['choices'] == 'false')
{
echo 'Значение установлено';
} else
{
echo 'Значение не установлено';
}
Я всегда получаю "значение не установлено". Я не знаю, сохраняются ли мои выбранные значения в базе данных или нет. У меня нет никаких meta key или значений типа wp_acf
в базе данных.
Но после выбора "yes" в выпадающем списке на странице категории значение сохраняется - даже после обновления страницы значение остается "yes".
Я запутался, сохраняется ли значение в базе данных или нет.

В этом фрагменте кода:
$field = get_field_object('field_51d3f9c3f5554');
$field['choices']
будет содержать массив доступных вариантов для этого поля, а не текущее выбранное значение. Текущее выбранное значение содержится в $field['value']
.
Однако использование get_field_object
, когда вам нужно только текущее выбранное значение, является избыточным.
Для правильного использования get_field()
внимательно изучите документацию, чтобы узнать, какие параметры необходимо передавать в эту функцию, особенно раздел $post_id examples
. Таксономии (taxonomy terms) не то же самое, что записи (posts), вам нужно передавать дополнительный аргумент в формате "$taxonomy_$term_id"
.
ПРИМЕЧАНИЕ: также обратите внимание, что в вашем вызове get_field(' select_to_display_')
перед именем ключа есть пробел, что приведёт к ошибке, если ключ на самом деле не начинается с пробела, что, как я предполагаю, не так.

Спасибо, milo, но я попробовал, и у меня не получается получить выбранное значение $field=get_field('select_to_display_',$category_id); echo $field;//ничего не выводится echo $field['value'];//ничего не выводится

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