Есть страница с определенным щаблоном.
На этой странице, в зависимости от get параметров, по api приходят такие данные:
vendor = "MERCEDES BENZ"
model = "C CLASS ALL-TERRAIN"
Т.е. урл выглядит так:
/auc-online/?vendor=MERCEDES BENZ&model=C CLASS ALL-TERRAIN
Чтоб сделать нормальный урл, я через add_rewrite_rule, делаю нужную мне струткуру, в итоге получается:
add_rewrite_rule('^(auc-online)/([^/]+)/([^/]+)/?', 'index.php?pagename=$matches[1]&vendor=$matches[2]&model=$matches[3]', 'top');
/auc-online/mercedes benz/c class all-terrain/
Теперь нужно избавиться от пробелов, чтоб урл выглядел так:
/auc-online/mercedes-benz/c-class-all-terrain/
Я делаю как-то так:
str_replace(' ', '- ', $string)
Всё работает, но тогда менются get параметры, а они мне нужны для запроса к api. Т.е. мне нужно преобразовать всё в обратном порядке, заменить дефисы на пробелы. Но если я заменю все дефисы, то производители и модели которые имели изначально дефис в своем имени я не смогу получить. Т.е. мне нужно заменить только те дефисы которых небыло изначально.
Я сделал немного по другому. Сначала меняю пробелы на ‐ Вот так:
str_replace(' ', '‐', $string);
Затем делаю всё наоборот:
str_replace('%E2%80%90', ' ', $string);
И в целом это работает, в браузере урл отображается как положено. Но если скопировать такой урл, то выглядит он естественно со всеми этими символами:
/auc-online/mercedes%E2%80%90benz/c%E2%80%90class%E2%80%90all-terrain/
Можно что-то с этим сделать?