Чтобы добавить на сайт смену города, придумано удобное решение — плагин BelingoGeo.
Итак, как с ним работать.
- В поиске плагинов выбираем BelingoGeo, устанавливаем и активируем
- Переходим в настройки, где выбираем, как будет отображаться url адрес города — в поддиректории или поддомене, выбираем город по умолчанию, например, Москва

Чтобы селектор работал, подключаем галочку «Подключить всплывающие окна в футере сайта»

Город по умолчанию ставим Default

3. Добавляем несколько городов — для теста:

Можно добавить страницы исключения
Url появившейся страницы можно посмотреть в окне «Ярлык» — добавив его в настройках экрана. ваш-сайт/Moskva
Пишем переменные для городов (шорткоды) на каждой странице

Если нужно разместить селектор или какой-то другой шорткод в файле темы, например, в футере, его нужно обернуть в команду php:

Можно добавить дополнительное поле с помощью плагина ACF. Для этого, создаем новую группу полей:

Чтобы добавить дополнительное поле в BelingoGeo с помощью Advanced Custom Fields (ACF), выполните следующие шаги:
Содержание
1. Установите и активируйте плагин ACF
- Перейдите в «Плагины» → «Добавить новый» в админке WordPress.
- Найдите «Advanced Custom Fields» и установите его.
- Активируйте плагин.
2. Создайте новую группу полей (Field Group)
- Перейдите в «ACF» → «Field Groups» → «Add New».
- Укажите название группы (например, «Дополнительные поля BelingoGeo»).
3. Добавьте новое поле
- Нажмите «Add Field».
- Заполните параметры:
- Label (Название поля, например, «Дополнительное поле»).
- Name (Имя поля, например,
dop_pole). - Field Type (Тип поля: текст, изображение, выбор и т. д.).
- Другие настройки (обязательное, подсказка и т. д.).
4. Настройте правила отображения (Location Rules)
- В разделе «Location» выберите, где должно отображаться поле:
- Post Type → Выберите тип записи BelingoGeo (обычно это
belingo_geoили другой кастомный тип — у меня «город»).
- Post Type → Выберите тип записи BelingoGeo (обычно это

- Можно настроить дополнительные условия (например, только для определенных страниц).
5. Сохраните группу полей
6. Выведите поле в шаблоне
- В файле шаблона (например,
single-belingo_geo.phpили через хуки), добавьте вывод поля:phpCopyDownload<?php $value = get_field(‘dop_pole’); if ($value) { echo $value; } ?> - Если используете Elementor или другой конструктор, можно вставить поле через ACF Widget.
Я делала через хуки (плагин может обновиться и т.д., поэтому редактор плагина — не надежно)
Для этого открываем functions.php

и вставляем код в конец:
add_action('acf/init', 'add_custom_fields_to_belingo_geo');
function add_custom_fields_to_belingo_geo() {
acf_add_local_field_group(array(
'key' => 'group_belingo_geo_fields',
'title' => 'Дополнительные поля BelingoGeo',
'fields' => array(
array(
'key' => 'field_belingo_geo_custom',
'label' => 'Мое поле',
'name' => 'my_custom_field',
'type' => 'text',
'instructions' => 'Введите дополнительную информацию',
'required' => 0,
),
// Можно добавить другие поля
),
'location' => array(
array(
array(
'param' => 'post_type',
'operator' => '==',
'value' => 'belingo_geo', // Замените на slug вашего типа записи
),
),
),
'menu_order' => 0,
'position' => 'normal',
'style' => 'default',
'label_placement' => 'top',
'instruction_placement' => 'label',
'hide_on_screen' => '',
));
}
Я еще перед кодом комментарий "Добавление полей в города"

7. Проверьте работу
- Откройте запись BelingoGeo в админке — новое поле должно появиться.
- Проверьте отображение на фронтенде.

у меня появилось. Таким же образом можно добавить карту и т.д.
Дополнительно:
- Если BelingoGeo использует кастомные таксономии, можно добавить поля и для них (в Location Rules выберите Taxonomy → Нужная таксономия).
- Для работы с ACF в REST API (если нужно), включите опцию «Show in REST API» в настройках поля.
Если BelingoGeo — это кастомный плагин с особыми полями, может потребоваться дополнительная интеграция через хуки или фильтры. В таком случае уточните структуру данных плагина.
Список шорткодов BelingoGeo
Описание шорткодов плагина BelingoGeo
[belingogeo_selector] – основной шорткод для внедрения плагина во фронтенд сайта. Выводит текущий выбранный город, в виде ссылки. При клике появляется окошко выбора города. Так же, в шорткоде есть всплывающее окошко, которое подтверждает город. Есть дополнительный параметр «show_question», нужен для отключения окна с подтверждением города, полезно, если Вы хотите разместить на странице несколько селекторов.
Примеры использования:
[belingogeo_selector] — отобразит ссылку, в тексте которой определиться город и всплывёт окно подтверждения.
[belingogeo_selector show_question="false"] — отобразит ссылку, в тексте которой определиться город.
Для корректной работы шорткода, в настройках плагина необходимо включить опцию: «Подключить всплывающие окна в футере сайта»
[belingogeo_city_field] – универсальный шорткод, с помощью него можно вывести любую мету города, например можно с помощью плагина ACF добавить дополнительное поле и вывести его в шаблоне. Использование: [belingogeo_city_field field="название поля"]
Предустановленные названия полей:
city_name — Выведет название города (Москва). Например, [belingogeo_city_field field="city_name"] — выведет нужный город. Также и с остальными предустановленными полями
city_slug — Выведет ярлык города (moskva)
city_padej1 — Название текущего выбранного города в предложном падеже, берётся из соответствующего поля.
city_padej2 — Название текущего выбранного города в дательном падеже, берётся из соответствующего поля
city_padej3 — Название текущего выбранного города в родительном падеже, берётся из соответствующего поля
city_phone — Телефон текущего выбранного города, берётся из соответствующего поля
city_phone_link — Телефон текущего выбранного города в виде html ссылки, берётся из соответствующего поля
city_address — Адрес текущего выбранного города, берётся из соответствующего поля
Как создать дополнительное поле для города в плагине belingoGeo?
[belingogeo_city_content] – это контентный шорткод, позволяющий в зависимости от указанного города или городов, вывести любое произвольное содержимое. Использование: [belingogeo_city_content city="moskva"]Контент для города Москва[/belingogeo_city_content], если Вы хотите вывести текст, который должен отобразиться без выбранного города, можно указать так: [belingogeo_city_content]Контент по умолчанию[/belingogeo_city_content].
Ещё примеры использования данного шорткода:
[belingogeo_city_content city="moskva"]Для Москвы[/belingogeo_city_content][belingogeo_city_content city="moskva" exclude="1"]Для всего, кроме Москвы[/belingogeo_city_content][belingogeo_city_content]Город не выбран[/belingogeo_city_content][belingogeo_city_content city="" exclude="1"]Для всех городов[/belingogeo_city_content][belingogeo_city_content city="penza,moskva"]Для Пензы и Москвы[/belingogeo_city_content][belingogeo_city_content city="penza,sankt-peterburg" exclude="1"]Для всего, кроме Пензы и Санкт-Петербурга[/belingogeo_city_content]
[belingogeo_region_field] — Данный шорткод полностью повторяет функционал шорткода belingogeo_city_field, но работает с регионами. Использование: [belingogeo_region_field field="название поля"]
Предустановленные названия полей:
bg_regions_name — Выведет название региона (Москва)
bg_regions_slug — Выведет ярлык региона (moskva)
bg_regions_phone — Телефон текущего выбранного региона, берётся из соответствующего поля.
bg_regions_address — Адрес текущего выбранного региона, берётся из соответствующего поля.
[belingogeo_region_content] — Данный шорткод полностью повторяет функционал шорткода belingogeo_region_content, но работает с регионами и в качестве параметра передаётся region, использование:
[belingogeo_region_content region="moskva"]Контент для Московского региона[/belingogeo_region_content]