Документ описывает использование регионального сегмента в пути URL (директории первого уровня или тег %location% в ЧПУ) совместно с «WT GeoTargeting Pro». Расчёт на разработчиков: требуется понимание постоянных ссылок WordPress, хуков и класса WP_Rewrite.
Внимание. Полноценной «сборки сайта целиком на директориях» из коробки плагин не обеспечивает. Часть сценариев требует самостоятельной настройки правил перезаписи, ссылок в теме и совместимости с произвольными типами записей.
Что делает плагин без доработки темы
После настройки регионов в админке плагин может сопоставлять первый сегмент пути с slug региона и выставлять активную локацию. Если первый сегмент не совпадает ни с одним регионом (при включённой соответствующей логике в настройках), возможен ответ 404 — см. Настройка URL и URL, домены и поддомены.
Опции включаются в WT GeoTargeting → Субдомены и Url (раздел про директории и %location%).
Тег запроса %location% и ЧПУ
Чтобы использовать плейсхолдер региона в структуре постоянных ссылок, в WordPress обычно регистрируют тег перезаписи. Пример регистрации тега, который затем можно подставлять в настраиваемые правила:
// Тег для ЧПУ: значение подставляется в query var location=
add_rewrite_tag( '%location%', '([^/]+)', 'location=' );
Дальнейшую работу (правила add_rewrite_rule, порядок правил, сброс кэша правил после изменений) необходимо реализовать в теме или отдельном плагине. Плагин «WT GeoTargeting Pro» не заменяет полную настройку WP_Rewrite под произвольную структуру сайта.
Структура постоянных ссылок для записей
На экране Настройки → Постоянные ссылки можно задать произвольную базу, например:
/%location%/blog/%postname%/
После сохранения структуры и при корректных правилах перезаписи ссылки на записи должны формироваться стандартными функциями WordPress (get_permalink() и т.п.), если тема их использует. Для каждого нового типа записи при нестандартной базе URL обычно нужны дополнительные правила и обработка.
Меню: произвольные ссылки
В пунктах меню типа «Произвольная ссылка» в путь можно вписать шаблон с %location%. Плагин или тема должны подменять %location% на slug активного региона при выводе (через фильтры меню или собственную логику).
Пример в настройках меню: /%location%/uslugi/
На сайте при регионе «Самара»: /samara/uslugi/
Страницы и записи
При согласованной настройке правил и генерации ссылок адреса страниц и записей могут строиться автоматически, если в теме применяются штатные функции WordPress для URL. Любая кастомная генерация ссылок в шаблонах должна учитывать активный регион так же, как и ядро.
Ограничения: переменная %location% и региональные страницы
При включённой опции «Поддержка переменной запроса (%location%)» не работает полноценное использование отдельных страниц на регион (фильтрация по метабоксу «Регионы»). Включать её имеет смысл только при схеме с ?location=... или путём /%location%/, без опоры на региональные страницы. Если нужны региональные страницы и фильтрация контента — опцию рекомендуется отключить. Подробнее: Настройка URL.
См. также
- Настройка URL — обзор поддоменов, доменов и директорий, версии возможностей
- URL, домены и поддомены — сопоставление URL с регионом
- Выбор города — режим
link_directory - Шорткод wt_locations — ссылки выбора региона, в т.ч.
home_url_path - Обновление плагина — риски при обновлениях при кастомных корневых директориях