Страницы авторов с греческими отображаемыми именами маршрутизируются неправильно и возвращают 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

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