Поддержка Проблемы и решения Разные ID категорий в разных языках

  • Добрый день!

    Есть двуязычный сайт на Languages (не знаю, плагин ли это или встроенный функционал). В новостях три рубрики: Продукты, Услуги, Клиенты. В каждой новости есть ссылка на страничку вывода всех новостей этой категории. Ссылка вида: sitename.ru/news/?cats=2, где 2 это некий ID категории (в русской версии вместо news — novosti.

    ID в post.php получается так: get_cat_ID($cat[0]->cat_name). $cat получается так: get_the_category($post->ID).

    В русской версии все ок, айдишники такие: 3, 4, 5. Но английская версия генерит неработающие айдишники: 64, 66, 68 — они все выводят не рубрики, а все новости! Причем, если ручками подставить правильные айдишники, то все выводится корректно.

    Подскажите, что я делаю неправильно.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Юрий

    (@yube)

    Ссылка вида: sitename.ru/news/?cats=2

    Ссылка странная. Какая-то помесь ЧПУшной с «простой».

    Подскажите, что я делаю неправильно.

    Для начала вот это:

    не знаю, плагин ли это или встроенный функционал

    Нельзя работать с тем, природа чего неизвестна.

    Автор zolotukhin1984

    (@zolotukhin1984)

    @yube это плагин Polylang

    Ну да, такая ссылка

    Модератор Юрий

    (@yube)

    У меня несколько сайтов на Полиланге, и ни на одном нет таких кривых странных ссылок. Зато в ссылке есть код языка, если выбран не дефолтный язык. Типа так:
    /novosti/ — новости рус.
    /en/news/ — новости англ.

    Автор zolotukhin1984

    (@zolotukhin1984)

    @yube

    «…нет таких кривых странных ссылок»: 🙂 Такое хозяйство досталось, пока руки не дошли заняться.

    Типа так:
    /novosti/ — новости рус.
    /en/news/ — новости англ.

    Так у меня так же. Мы, возможно, о разных вещах говорим.

    1) Я захожу в Новости:
    sitename.ru/en/news (или на русской версии sitename.ru/novosti)

    2) Захожу в отдельную новость (news и novosti при этом пропадают):
    sitename.ru/en/we-won-the-race (sitename.ru/my-vyigrali-gonku)

    3) В самой новости есть название рубрики (Товары и Items, например), к которой эта новость принадлежит, в этом названии зашита ссылка, которая в русской версии такая:

    sitename.ru/novosti/?cats=2 (и тут все ок — подборка русских новостей 2-й категории)

    а в английской такая:

    sitename.ru/news/?cats=64

    (это не статические страницы, это выборка всех новостей рубрики)

    При клике на английскую в ссылку подставляется еще и /en/ в результате попадаем на:

    sitename.ru/en/news/?cats=64

    Но здесь все новости, а не одной категории. Если ручками записать так:

    sitename.ru/en/news/?cats=2, то все ок, попадаем на подборку английских новостей 2-й категории

    • Ответ изменён 2 года назад пользователем zolotukhin1984.
    • Ответ изменён 2 года назад пользователем zolotukhin1984.
    • Ответ изменён 2 года назад пользователем zolotukhin1984.
    Модератор Юрий

    (@yube)

    попадаем на подборку английских новостей 2-й категории

    Что Вы называете категорией?

    Автор zolotukhin1984

    (@zolotukhin1984)

    @yube я называю категорией то, что в меню WP лежит в разделе Записи и называется там «Рубрики». При добавлении новой записи рубрику из списка можно выбрать в правом меню в разделе «Рубрики». Если рубрика не выбрана присваивается рубрика «Без рубрики»

    Автор zolotukhin1984

    (@zolotukhin1984)

    @yube в общем, не знаю, как это в админке WP решать, я взял php-файл, управляющий страницей Новости, нашел там:

    <?php if($_GET[‘cats’] == 3) { ?>

    заменил на:

    <?php if(($_GET[‘cats’] == 3) || ($_GET[‘cats’] == 64)) { ?>

    и все заработало

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Разные ID категорий в разных языках» закрыта для новых ответов.