Отловить и перенаправить 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/
Теперь он может просматривать весь контент который относится этому городу, если это контент относится к другому городу, то ему нужно сменить город.
Далее он делится этой ссылкой и она открывает нужный контент.
Для чего это должно работать ? Это должно работать для страниц/постов/ любых кастомных таксономий и типов постов
Это глобальная задача!
Если можно решить как то проще то готов выслушать другие варианты.
Это плохая идея, такое реализовывается на куках.