Задать вопрос
@Turtle_Onni

Как реализовать перезапись ЧПУ при определении города по ip?

Имеется кастомная таксономия для post - Город( location ), по ip узнаю город и встраиваю в урл по всему сайту.

Вариант реализации 1:
Через template_redirect подставляю в конце параметр в урл ?location=slug_location
Но этот вариант отпал. Во первых он не красивый, во вторых: так как город должен учитываться и влиять на категории и метки использовала is_archive() || is_category() || is_tax(), что привело к too mach redirection.

Вариант реализации 2:
Используя add_rewrite_rule перезаписываю правило где сразу после домена выставляю slug_location. Данная реализация работает с категориями, но с тегами не работает. Ко всему прочему хотелось бы убрать category из урла, но в этом случае не отображаются категории без указания slug_location в принципе. (Если подскажите как можно убрать category совсем, буду признательна).

Вообще идеально было бы если бы параметр location применялся по всему сайту без привязки к шаблону и в принципе его видимости - но вот как так реализовать пока не придумала.
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@Turtle_Onni Автор вопроса
Вопрос решается add_action('pre_get_posts', 'use_ip', 20);
Используя
is_archive() || is_category() || is_tax()
встраиваем только на этих шаблонах в запрос нашу переменную таким образом:
$taxquery = array(
                    array(
                        'taxonomy' => 'location',
                        'field' => 'term_id',
                        'terms' => $tax->term_id,
                        'operator' => 'IN'
                    )
                );
                $query->set('tax_query', $taxquery);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы