Шорткод выводит список регионов (городов, областей и т.д.), по клику на которые посетитель выбирает свой регион. Начиная с версии 1.7.10 Pro.
Назначение
- Вывод списка городов/регионов для выбора
- Поддержка разных типов перехода: JavaScript (cookie), поддомены, директории, выпадающий список
- Группировка и сортировка (в т.ч. по приоритету)
- Взаимодействие с wt_location_search — переменные оформления берутся из
wt_locations
Синтаксис
В блоке контента используется одна пара квадратных скобок:
[wt_locations]
или с аргументами:
[wt_locations filter_type="city" columns=2 container_class="row" column_class="col-12 col-md-6"]
Аргументы
Контейнер и список
| Аргумент | Описание | По умолчанию |
|---|---|---|
container_id | ID контейнера | null |
container_tag | Тег контейнера | div |
container_class | Класс контейнера | null |
columns | Количество колонок | 1 |
column_class | Класс колонок | null |
label | Подпись над списком | null |
list_id | ID тега списка | wt-list-locations |
list_tag | Тег списка: ul, div, a, select | ul |
list_class | Класс списка | null |
list_style | Inline-стили списка | null |
list_item_rel | Атрибут rel ссылки элемента | null |
list_item_target | Атрибут target ссылки | null |
item_tag | Тег элемента (название региона) | a |
item_text | Текст элемента. Поддержка: {region_name_prepositional} — название в предложном падеже | название региона |
Фильтрация и сортировка
| Аргумент | Описание | По умолчанию |
|---|---|---|
filter_type | Тип: city, region, country, district, administrative_district | city |
filter_priority_view | Отображение приоритетных городов | null |
filter_parent | ID родителя или active_parent_id, active_country_id | null |
filter_parent_not | Исключить регионы с указанным родителем (ID) | null |
order | Направление: ASC, DESC | null |
orderby | Поле сортировки (как в WP_Query) | null |
orderby_add_priority | Сначала приоритетные регионы | false |
hierarchy | Иерархический список: list или false | false |
location_group | Группировка: uppercase, parent (значение parent не работает) | false |
Переход при выборе
| Аргумент | Описание | По умолчанию |
|---|---|---|
type_select_location | Тип выбора региона: java_script, link_subdomain, link_directory, dropdown_list | java_script |
cookie_saved_data_type | Данные в cookie: location_name, location_id | location_name |
url_path | Куда переходить после смены региона: current_page — текущая страница, null — корень | current_page |
home_url_path | Путь к главной: null, /%location%/ | null |
protocol | http или https | авто |
domain | Основной домен | авто |
Примеры
В каждом подразделе сначала приведён пример кода — строка шорткода для копирования в контент. Ниже указано, как посмотреть рабочий пример (вывод шорткода на странице).
На странице документации с демонстрацией для основных сценариев блок кода идёт первым, под ним — Результат: тот же шорткод в контенте страницы, чтобы видеть живой вывод. Если на одной странице несколько выпадающих списков, в рабочем примере может быть добавлен уникальный list_id, чтобы не пересекались списки.
Список городов в 2 колонки (Bootstrap 5)
Деление на две колонки с классами Bootstrap 5.
Пример кода:
[wt_locations columns=2 container_class="row" column_class="col-12 col-md-6"]
Рабочий пример: на странице документации — раздел «Список городов с перезагрузкой страницы»: под блоком кода выводится результат этого шорткода.
Список областей
Пример кода:
[wt_locations filter_type="region" columns=2 container_class="row" column_class="col-12 col-md-6"]
Рабочий пример: на странице документации — раздел «Список регионов с перезагрузкой страницы».
Ссылки на поддомены
Для работы нужна настройка поддоменов.
Пример кода:
[wt_locations type_select_location="link_subdomain"]
Рабочий пример: на странице документации — раздел «Список городов ссылками на поддомены». Если поддомены не настроены, ссылки ведут себя как в пояснении на сайте; в демо к рабочему примеру могут быть добавлены list_item_rel и list_item_target.
В примере ниже ссылки могут быть нерелевантны, если на сайте не настроены поддомены.
Выпадающий список
Пример кода:
[wt_locations type_select_location="dropdown_list"]
Рабочий пример: на странице документации — раздел «Выбор города в выпадающем списке»; при необходимости уникального list_id на странице с несколькими списками см. фактический вывод на сайте.
Выпадающий список с группировкой по областям
Пример кода:
[wt_locations type_select_location="dropdown_list" hierarchy=true filter_type=region]
Рабочий пример: на странице документации — раздел «Выбор города в выпадающем списке с группировкой областей».
Сортировка приоритетных городов первыми
Пример кода:
[wt_locations orderby_add_priority="true"]
Рабочий пример: вставьте шорткод на тестовую страницу — приоритетные регионы (если заданы в настройках) отображаются в начале списка при включённой сортировке.
Только города указанной области (ID родителя 123)
Пример кода:
[wt_locations filter_parent="123"]
Рабочий пример: подставьте вместо 123 фактический ID родительского региона из админки — в списке останутся дочерние локации.
Только соседи текущего региона (города той же области)
Пример кода:
[wt_locations filter_parent="active_parent_id"]
Рабочий пример: на странице с определённым регионом посетителя выводятся города той же области (родителя), что и у текущей локации.
Формирование ссылок выбора города
При использовании режимов link_directory и link_subdomain:
- Региональные директории: ссылки корректно формируются для путей вида
domain.com/moscow/,domain.com/catalog/moscow/. - Главная страница: на главной исключается подстановка ярлыка страницы — ссылки на главную для каждого региона формируются правильно.
- Путь страницы: при отсутствии ярлыка путь извлекается из текущего URL (
REQUEST_URI) или данных текущей записи.
Взаимодействие с wt_location_search
Шорткод wt_location_search выводит поле поиска. Оформление результатов (тег, тип перехода, путь URL) задаётся глобальными переменными, которые выводит wt_locations. Рекомендуется размещать оба шорткода на одной странице.
Технические детали
- Обработчик:
WtGtShortcode::shortcodeLocations() - Файл:
modules/WtGtShortcode/WtGtShortcode.php - Фильтр:
wt_geotargeting_pro_shortcode_locations_atts— изменение атрибутов перед выводом