В WordPress при переходе на страницу автора по умолчанию используется URL вида site.ru/author/username. Иногда возникает необходимость изменить этот адрес для улучшения SEO, удобства пользователей или соответствия структуре сайта. В этой статье мы подробно разберём, как изменить URL авторского архива в WordPress, используя как плагины, так и собственный код.
Почему стоит изменять URL авторского архива
По умолчанию префикс author в URL не всегда подходит под семантику сайта или не отвечает требованиям SEO. Например, если ваш сайт представляет команду или блог с индивидуальными страницами авторов, можно заменить author на более понятное или тематическое слово. Это поможет:
- Сделать URL более читаемым и логичным для посетителей.
- Улучшить индексацию страниц автора поисковыми системами.
- Избежать конфликтов с другими страницами или таксономиями.
Изменение URL авторского архива через плагин
Самый простой способ — использовать готовый плагин. Например, Custom Author Slug позволяет изменить базовый префикс для авторских URL без написания кода.
Как настроить:
- Установите и активируйте плагин
Custom Author Slugчерез панель администратора WordPress. - Перейдите в меню Пользователи > Ваш профиль (или профиль нужного автора).
- Найдите поле для изменения slug автора и установите желаемый префикс.
- В настройках плагина задайте новый базовый префикс для всех авторских URL.
После сохранения изменений ссылки авторских архивов будут работать с новым URL. Плагин автоматически обновит правила перезаписи (rewrite rules).
Изменение URL авторского архива с помощью кода в functions.php
Для тех, кто предпочитает контролировать процесс самостоятельно, можно изменить URL авторского архива через код. Рассмотрим самый надёжный способ с использованием фильтров WordPress.
Шаг 1. Изменяем базовый префикс авторских архивов
Добавьте в файл functions.php вашей темы следующий код:
function wpinfo_change_author_base() {
global $wp_rewrite;
$wp_rewrite->author_base = 'team'; // замените 'team' на нужный префикс
}
add_action('init', 'wpinfo_change_author_base');В этом примере префикс author заменён на team. Теперь URL авторских страниц будут выглядеть как site.ru/team/username.
Шаг 2. Обновляем правила перезаписи
После изменения префикса необходимо обновить правила перезаписи. Это можно сделать вручную: зайдите в админке WordPress в Настройки > Постоянные ссылки и нажмите «Сохранить изменения» без изменения настроек.
Чтобы сделать это программно, добавьте код активации функции при инициализации темы или плагина:
function wpinfo_flush_rewrite_rules() {
wpinfo_change_author_base();
flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'wpinfo_flush_rewrite_rules');Обратите внимание, что вызов flush_rewrite_rules() должен происходить только при активации, чтобы избежать падения производительности.
Шаг 3. Добавляем кастомный редирект (если необходимо)
Если у вас уже есть старые URL с префиксом author, и вы хотите сделать редирект на новый префикс, добавьте следующий код:
function wpinfo_redirect_old_author_url() {
if (is_author() && strpos($_SERVER['REQUEST_URI'], '/author/') !== false) {
$author = get_queried_object();
if ($author) {
wp_redirect(site_url('/team/' . $author->user_nicename), 301);
exit;
}
}
}
add_action('template_redirect', 'wpinfo_redirect_old_author_url');Этот код проверит, если пользователь зашёл по старому URL, и сделает 301 редирект на новый адрес с префиксом team.
Важные моменты и рекомендации
При изменении URL авторского архива учитывайте следующее:
- Изменение префикса может повлиять на SEO, поэтому не забывайте про редиректы с прежних адресов.
- Если на сайте используется кэширование, после обновления правил перезаписи очистите кэш.
- Проверьте, что новые URL корректно работают с вашей темой и плагинами, особенно с теми, которые зависят от авторских страниц.
Дополнительные настройки: изменение слага конкретного автора
Иногда нужно не только изменить базовый префикс, но и слаг конкретного автора. Для этого можно использовать фильтр author_link:
function wpinfo_custom_author_link($link, $author_id, $author_nicename) {
// Заменяем nicename для конкретного автора
if ($author_nicename === 'ivanov') {
$custom_slug = 'ivan';
return home_url('/team/' . $custom_slug . '/');
}
return $link;
}
add_filter('author_link', 'wpinfo_custom_author_link', 10, 3);Этот код заменит URL автора с никнеймом ivanov на site.ru/team/ivan/. Такой подход полезен для создания человекочитаемых и брендированных ссылок.
Заключение по теме изменения URL авторского архива в WordPress
Изменение URL авторского архива — достаточно частая задача, которая помогает оптимизировать структуру сайта и улучшить пользовательский опыт. Использование плагинов удобно для быстрого решения, а собственный код даёт полный контроль и гибкость. Надеюсь, приведённые примеры и рекомендации помогут вам реализовать нужные изменения быстро и без ошибок.