Я пробовал добавить фильтр в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', '');
}
}
}
});
Подробнее здесь: https://stackoverflow.com/questions/798 ... ly-and-ret
Мобильная версия