Поддержка Проблемы и решения Url автора с локализованным user_nicename = 404

  • В function.php включен код, позволяющий сохранять в данных пользователя локализованный user_nicename, который используется как часть url, например __site__/author/иван-иванов/

    При попытке открыть такую страницу — получаю ошибку 404 (страница не найдена), при том, что url-ы постов(записей) типа __site__/news/это-вторая-новость-сайта/ работают прекрасно.

    Изменение в БД значения поля user_nicename на ivan-ivanov и, соответственно, url как __site__/author/ivan-ivanov/ — также работает отлично, но (по задаче url совместимости) нужны именно локализованные url.

    В какую сторону копать с это проблемой?

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

    (@yube)

    локализованный user_nicename, который используется как часть url

    Там кириллица или urlencode?

    в бд кириллица. в html урлы как urlencode, т.е. вида %d0%bd….

    UPD: и при выводе имени автора в урл через utf8_uri_encode() (т.е. с результатом вида %d0%bd%c2….), так и без этого (т.е. чистый /author/иван-иванов/) результат одинаков — 404.

    Еще заметил, что если набрать в адресной строке (site)/author/main-editor , т.е. nicename существующего автора с латинским nicename и БЕЗ слеша на конце — слеш добавляется автоматически, если то же проделать с кириллическим nicename, например /author/иван-иванов — url не обрабатывается и слеш не добавляется!

    • Ответ изменён 1 неделя, 3 дня назад пользователем toologic.
    • Ответ изменён 1 неделя, 2 дня назад пользователем toologic.
    • Ответ изменён 1 неделя, 2 дня назад пользователем toologic.
    Модератор Юрий

    (@yube)

    По идее в БД тоже должен быть urlencode. Попробуйте. Если не сработает, надо копать в сторону первичной обработки (sanitize) запроса перед обращением к БД. Запись поля — это ведь только половина дела.

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

    (@yube)

    …если там вообще проверяется user_nicename, а не только user_login

    По идее в БД тоже должен быть urlencode.

    Да. Это сработало! Спасибо за помощь!

Просмотр 5 ответов — с 1 по 5 (всего 5)