В WordPress по умолчанию URL авторских архивов формируются с использованием базового параметра /author/. Например, ссылка на автора с логином ivan будет выглядеть как https://site.ru/author/ivan. Однако в ряде случаев возникает необходимость изменить этот базовый сегмент URL, например, на /profile/ или /user/, чтобы улучшить SEO, сделать адреса более понятными или соответствующими стилю сайта.
Почему стоит менять базовый сегмент URL авторов
Изменение базового префикса авторских ссылок помогает:
- Сделать URLs более дружелюбными и понятными пользователям.
- Избежать конфликтов с другими страницами или постами, если используется нестандартная структура.
- Улучшить визуальную идентификацию раздела сайта, посвященного пользователям или авторам.
- Оптимизировать структуру сайта под конкретные задачи SEO.
При этом многие решают использовать плагины для этих целей, но это добавляет лишние зависимости и нагрузку. В этой статье мы рассмотрим, как сделать это с помощью собственного кода.
Настройка базового префикса авторских URL с помощью фильтра author_rewrite_rules
WordPress формирует правила для авторских URL с помощью rewrite-правил. Чтобы изменить базовый сегмент, нужно переписать соответствующие правила и обновить ссылку на авторский архив.
Шаг 1. Изменяем правила перезаписи
Добавим в файл functions.php вашей темы или в кастомный плагин следующий код:
function wplessons_change_author_base() {
global $wp_rewrite;
$author_base = 'profile'; // задаем новый базовый префикс
$wp_rewrite->author_base = $author_base;
}
add_action('init', 'wplessons_change_author_base');Этот простой код изменит базовый сегмент URL с author на profile. После добавления кода необходимо обновить структуру постоянных ссылок в админке (Настройки –> Постоянные ссылки –> Сохранить изменения), чтобы правила перезаписи обновились.
Шаг 2. Фильтруем генерацию ссылок на авторские архивы
Для того чтобы функции WordPress, например get_author_posts_url(), возвращали корректные ссылки с новым базовым сегментом, добавим фильтр:
function wplessons_author_link($link, $author_id, $author_nicename) {
$author_base = 'profile';
return home_url(user_trailingslashit($author_base . '/' . $author_nicename));
}
add_filter('author_link', 'wplessons_author_link', 10, 3);Теперь при вызове функции генерации ссылки на страницу автора будет использоваться новый базовый сегмент profile.
Как проверить, что всё работает правильно
После внесения изменений и обновления постоянных ссылок:
- Перейдите в браузере по адресу вида
https://ваш-сайт/profile/имя_автора— должна открыться страница с архивом записей этого автора. - Используйте функцию
get_author_posts_url($author_id)в шаблонах — ссылка должна содержать новый базовый сегмент. - Если возникают ошибки 404, попробуйте сбросить правила перезаписи через админку или вручную вызвать
flush_rewrite_rules().
Дополнительные полезные советы
Учёт перевода базового сегмента
Если ваш сайт многоязычный, полезно сделать базовый сегмент динамическим, зависящим от языка. Для этого можно использовать условные конструкции и функции локализации, например:
function wplessons_change_author_base_multilang() {
global $wp_rewrite;
if (defined('ICL_LANGUAGE_CODE')) { // если установлен WPML
switch(ICL_LANGUAGE_CODE) {
case 'ru':
$wp_rewrite->author_base = 'avtor';
break;
case 'en':
$wp_rewrite->author_base = 'profile';
break;
default:
$wp_rewrite->author_base = 'profile';
}
} else {
$wp_rewrite->author_base = 'profile';
}
}
add_action('init', 'wplessons_change_author_base_multilang');Совместимость с SEO-плагинами
Большинство SEO-плагинов корректно работают с изменённым базовым сегментом, но стоит проверить, что они правильно индексируют новые URL. При необходимости настройте исключения или дополнительные редиректы.
Использование плагина Clearfy Pro для управления URL
Если вы хотите управлять URL-структурами без кода, обратите внимание на плагин Clearfy Pro. В его функционале есть опции для изменения префиксов авторов и других архивов, что позволяет быстро настроить URL без правки кода.
Итог
Изменение базового сегмента URL авторских архивов в WordPress — довольно простая задача, если использовать правильные хуки и фильтры. Такой подход улучшит структуру сайта и позволит настроить адреса так, как вам нужно, без привлечения лишних плагинов.