Для создания поля с типом город необходимо выбрать тип поля "Город"
Использование поля стандартное. В зависимости от настройки при создании поля выводится либо 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 } ?>
В итоге для Москвы будет такой вывод