Страницы авторов с отображаемыми именами на греческом языке маршрутизируются неправильно и возвращают ошибку 404.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Страницы авторов с отображаемыми именами на греческом языке маршрутизируются неправильно и возвращают ошибку 404.

Сообщение Anonymous »

После изменения user_nicename непосредственно из базы данных или с помощью специального плагина страницы авторов пользователей с отображаемыми именами, содержащими греческие буквы, не работают и возвращают ошибку статуса 404.
Я пробовал добавить фильтр вauthor_rewrite_rules, но, похоже, ничего не работает.
Есть ли какое-либо известное решение этой проблемы?
Решение
После комментария Патрика я внес следующие дополнения в файл function.php, и страницы автора теперь работают, когда user_nicename не латинское:

Код: Выделить всё

add_filter('author_rewrite_rules', function($rules) {
$new_rules = [
'author/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?author_name=$matches[1]&paged=$matches[2]',
'author/([^/]+)/?$' => 'index.php?author_name=$matches[1]',
];
return $new_rules;
}, 1000);

add_action('pre_get_posts', function($query) {
if (!is_admin() && $query->is_main_query() && $query->is_author()) {
$author_name = $query->get('author_name');

if ($author_name) {

$author_name = urldecode($author_name);

$user = get_user_by('slug', $author_name);

if ($user) {
$query->set('author', $user->ID);
$query->set('author_name', '');
}
}
}
});
Пришлось также добавить и действие, потому что с одним только фильтром наauthor_rewrite_rules ничего не работало.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ly-and-ret
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»