Предоставить массив списков в раскрывающемся списке ACF - PullRequest
0 голосов
/ 12 марта 2020

Так что я столкнулся с некоторыми проблемами и не уверен, как я могу это сделать, но я хотел бы предоставить массив списков для расширенного настраиваемого поля «Выбрать», которое я не уверен, как это сделать правильно.

Вот метод form внутри моего класса виджетов:

// This is the backend of the widgets
public function form($instance)
{
    $api = MailChimp_API::init();
    var_dump($api->get_lists());

    // Grab the widget ID
    $widget_id = $this->id;

    // The ACF Lists are empty at first
    $acf_lists = get_field('mailchimp_list', $widget_id) ? get_field('mailchimp_list',$widget_id) : '';
}

Метод get_lists() выдает многомерный массив списков, как показано ниже:

enter image description here

Переменная $acf_lists - это мое поле get_field из базы данных, которого в данный момент нет, потому что у меня нет подробностей, чтобы передать его. Вот поле ACF внутри моей группы:

enter image description here

Вот выпадающий список внутри виджета:

enter image description here

1 Ответ

1 голос
/ 12 марта 2020

Вы можете использовать следующий хук, чтобы заполнить раскрывающееся поле ACF значениями из get_lists. Вот пример кода.

function my_acf_load_field( $field ) {
    $api = MailChimp_API::init();
    $lists = $api->get_lists();

    $field['choices'] = [];
    foreach($lists as $list) {
     $field['choices'][$list['id']] = $list['name'];
    }
    return $field;
}

add_filter('acf/load_field/key=field_123abcf', 'my_acf_load_field');

https://www.advancedcustomfields.com/resources/acf-load_field/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...