Отловить и перенаправить URL с правильно выбраним регионом
Хочу реализовать такую штуку как выбранный пользователем регион в url.
Идея такая
- Пользователь всегда зарегистрирован
- Когда пользователь выбирает регион, то выбранный регион записывается ему в meta и в будущем все ссылки автоматически строятся с дописыванием региона и если он перешел по ссылке с другим регионом то в его мета автоматически меняется регион
http://mysite.com/{other url param}-->http://mysite.com/{region}/{other url param}
У меня вариант отлавливать "home_url" на лету, валидировать его и дописывать и если нужно редиректить куда нужно, но это не совсем работает
// это небольшая виноска с класса
add_filter( 'site_url', array($this, 'city_rewrite_custom_url'), 10, 4 );
add_filter( 'home_url', array($this, 'city_rewrite_custom_url'), 10, 4 );
function city_rewrite_custom_url ( $url, $path = false, $orig_scheme = false, $blog_id = false ) {
if( is_admin() )
return $url;
$add_section = get_current_city();
if( stripos($url, 'wp-json') !== FALSE ) return $url;
if( stripos($url, '\/feed\/') !== FALSE ) return $url;
if( stripos($url, 'wp-includes') !== FALSE ) return $url;
if( stripos($url, $add_section ) !== FALSE ) return $url;
if( !empty( $path ) and $path != '/') {
$_url = explode($path, $url);
$path = $path[0] == '/' ? $path : '/'.$path;
$add_section = substr($_url[0], -1, 1) == '/' ? $add_section : '/'.$add_section;
$url = $_url[0].$add_section.$path;
}
else {
$add_section = substr($url, -1, 1) == '/' ? $add_section : '/'.$add_section;
$url = $url.$add_section;
}
return $url;
}
Подскажите, какие есть варианты, и как можна вийти из ситуации. Как работает WP_Rewrite я так и не понял и самое главное я нигде не нашел момент где можно глобально менять url для всего сайта
Я не понял смысл всего этого, объясните на реальных данных.
Что будет на странице http://mysite.com/{region}/{other url param}?
Зачем вам wp_rewrite? Постройте логику на куках и не на переписки урлов, а на редиректах например. Тем более если пользователи будут авторизованы.
Суть в том что так я хочу сделать базу по городах, например пост с названиям "Супер акция" относится к разделу (категория) акция и к городам (таксономия 'city') "Москва", "Питер". Теперь я хочу Что б человек зашел на сайт выбрал город "Питер" и теперь у него все URL выглядели как http://site.com/piter/
Теперь он может просматривать весь контент который относится этому городу, если это контент относится к другому городу, то ему нужно сменить город.
Далее он делится этой ссылкой и она открывает нужный контент.
Для чего это должно работать ? Это должно работать для страниц/постов/ любых кастомных таксономий и типов постов
Это глобальная задача!
Если можно решить как то проще то готов выслушать другие варианты.
Это плохая идея, такое реализовывается на куках.