Как получить значения select, созданные плагином ACF в WordPress

4 июл. 2013 г., 16:46:09
Просмотры: 16.4K
Голосов: 1

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

Я использую плагин 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".

Я запутался, сохраняется ли значение в базе данных или нет.

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

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

Rarst Rarst
4 июл. 2013 г. 17:30:31
Все ответы на вопрос 1
3

В этом фрагменте кода:

$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_') перед именем ключа есть пробел, что приведёт к ошибке, если ключ на самом деле не начинается с пробела, что, как я предполагаю, не так.

4 июл. 2013 г. 19:39:53
Комментарии

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

bangari bangari
5 июл. 2013 г. 05:57:49

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

bangari bangari
5 июл. 2013 г. 06:19:49

вам нужно передать буквально текст category_, затем ID категории, добавленный в конец.

Milo Milo
5 июл. 2013 г. 18:52:07