Чт. Ноя 13th, 2025

Чтобы добавить на сайт смену города, придумано удобное решение — плагин BelingoGeo.

Итак, как с ним работать.

  1. В поиске плагинов выбираем BelingoGeo, устанавливаем и активируем
  2. Переходим в настройки, где выбираем, как будет отображаться 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 или другой кастомный тип — у меня «город»).
  • Можно настроить дополнительные условия (например, только для определенных страниц).

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]

от admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *