Выбор данных из любой MySQL-таблицы в поле ACF

Представьте, что Вы хотите добавить в свой проект в плагине: Advanced Custom Fields новое поле с возможностью выбирать значение из какой-нибудь вашей MySQL-таблицы. И вот по умолчанию в плагине даже версии ACF PRO такой возможности увы нет. По хорошему нужно разбираться в добавлении новых типов полей и пилить свой дополнительный плагин — кстати, может я о таком еще не знаю? может уже существует такой? 

Есть другой подход — более локальный — это реализовать выборку данных из любой Вашей MySQL-таблицы и впихнуть эти данные в список выбора вашей ACF-опции. Решение конечно же локальное и настраиваемое через код — но простое и быстрое:

add_filter('acf/load_field/name=my_var', function ( $field ) {
    
    global $wpdb;

    // массив значений, которые будут доступны для выбора 
    $field['choices'] = array();

    // берем значение из некой таблицы my_table
    $rows = $wpdb->get_results("SELECT `id`, `name` FROM {$wpdb->prefix}my_table", ARRAY_A);    

    // наполняем массив данными из таблицы
    if (count($rows)) {
        foreach ($rows as $_value) {
            $field['choices'][$_value['id']] = $_value['name'];
        }
    }
    
    return $field;
    
});

my_var — это то Имя поля, которое вы зададите в настройках Вашей ACF-опции выбора:

написано по мотивам инструкции от самих разработчиков ACF и работать должно даже в обычном не платном ACF PRO.

ПОДЕЛИТЬСЯ

Программист, преподаватель, консультант.
Активный фрилансер и тех. директор студии AVGroup.
Фанат WordPress'а, а также всего - что даёт скорость в веб-разработке.