Поле acf

Для создания поля с типом город необходимо выбрать тип поля "Город"

Использование поля стандартное. В зависимости от настройки при создании поля выводится либо id города латиницей, либо название на русском

<?php echo get_field('city'); ?>

Пример

Для примера создадим в acf страницу настроек с филиалами для городов

add_action('acf/init', function(){
    acf_add_options_page(array(
        'page_title' => 'Филиалы',
        'icon_url' => 'dashicons-location',
        'update_button' => __('Обновить', 'acf'),
        'updated_message' => __("Обновления сохранены", 'acf'),
        'position' => 10,
        'redirect' => false
    ));
});
            

Заполним данными филиалы

В шаблоне страницы "Контакты" сделаем вывод филиалов выбранного пользователем города. Выберем филиалы только текущего города. Функция city_lat() возвращает текущий город(латиницей)

<?php
    $city_branches = [];
    if (get_field('branches', 'option')) {
        while (have_rows('branches', 'option')) {
            the_row();
            if ( city_lat() !== get_sub_field('city')) {
                continue;
            }
            $city_branches = get_sub_field('branches');
        }
    }
?>
                

Затем выведем адреса филиалов, если на предыдущем шаге что-то было найдено

<?php if ($city_branches) {?>
    <div class="list">
        <h2 class="head">Филиалы</h2>
        <ul>
        <?php foreach ($city_branches as $city_branch) : ?>
            <li>
                <?php echo $city_branch['address']; ?>
            </li>
        <?php endforeach; ?>
        </ul>
    </div>
<?php } ?>
            

В итоге для Москвы будет такой вывод