Для реализации такой функциональности в WordPress без использования плагинов, можно воспользоваться JavaScript. Это позволит вам динамически изменять URL на клиентской стороне перед перенаправлением. Вот пошаговая инструкция, как это сделать:
1. **Добавьте кнопки для переключения городов**. Например, в вашей теме или в контенте страницы добавьте кнопки с соответствующими значениями. Пример HTML-кода:
```html
<button class="city-switch" data-city="msk">Москва</button>
<button class="city-switch" data-city="spb">Санкт-Петербург</button>
```
2. **Добавьте JavaScript для обработки кнопок**. В вашем файле JavaScript (например, `custom.js`, который вы подключаете к вашему сайту), добавьте следующий код:
```javascript
document.querySelectorAll('.city-switch').forEach(button => {
button.addEventListener('click', function() {
// Получаем текущий URL
let currentUrl = window.location.href;
// Сохраняем выбранный город
let selectedCity = this.getAttribute('data-city');
// Определяем новый URL, заменяя часть с городом
let newUrl = currentUrl.replace(/\/(msk|spb)/, `/${selectedCity}`);
// Переходим на новый URL
window.location.href = newUrl;
});
});
```
3. **Подключите ваш JavaScript файл**. Убедитесь, что вы подключили ваш JavaScript файл (который содержит код переключения городов) в файл вашей темы, например, в `functions.php`:
```php
function my_custom_scripts() {
wp_enqueue_script('custom-js', get_template_directory_uri() . '/js/custom.js', array(), false, true);
}
add_action('wp_enqueue_scripts', 'my_custom_scripts');
```
4. **Тестирование**. Перейдите на страницу вашего сайта и проверьте работу кнопок. При нажатии на кнопку с названием города должно происходить перенаправление на соответствующий URL.
С таким подходом URL будет изменяться на несколько динамичный, без необходимости плагинотворчества или изменения серверной логики. Обратите внимание, что данный способ предполагает наличие только двух городов. Если их количество увеличится, вам будет необходимо немного адаптировать код для обработки дополнительных городов.