В WordPress по умолчанию адрес страницы автора формируется как site.ru/author/username. Иногда возникает необходимость изменить этот адрес — например, убрать часть «author», заменить на другое слово или сделать более удобочитаемый URL. В этой статье разберём, как изменить адрес авторской страницы без использования плагинов, используя функции WordPress и правила перезаписи (rewrite rules).
Почему стоит изменить URL авторской страницы
Изменение адреса авторской страницы может пригодиться по нескольким причинам:
- Для улучшения SEO — более чистый и понятный URL может лучше индексироваться поисковыми системами.
- Для брендирования — можно заменить «author» на что-то, что больше подходит под тематику сайта.
- Для безопасности — скрыть стандартные пути WordPress.
При этом важно сделать всё корректно, чтобы не сломать навигацию и не получить ошибки 404.
Как работает адрес авторской страницы в WordPress
По умолчанию WordPress использует rewrite rules для формирования адресов архивов. Для авторской страницы шаблонная структура — /author/%author_name%/. Чтобы изменить это, нам нужно:
- Зарегистрировать новую rewrite rule с нужным нам префиксом.
- Изменить функцию, которая формирует ссылку на автора (например,
author_link), чтобы она генерировала новые URL. - Обновить правила перезаписи (flush rewrite rules) после внесения изменений.
Изменение адреса авторской страницы: пошаговый пример
Рассмотрим пример, когда мы хотим заменить «author» на «profile» — URL станет site.ru/profile/username.
1. Добавляем новую rewrite rule
Для этого используем хук init и функцию add_rewrite_rule:
function wphost_add_custom_author_rewrite() {
add_rewrite_rule(
'^profile/([^/]+)/?$',
'index.php?author_name=$matches[1]',
'top'
);
}
add_action('init', 'wphost_add_custom_author_rewrite');Эта функция говорит WordPress, что при запросе /profile/username он должен подгружать архив автора с именем пользователя из URL.
2. Изменяем генерацию ссылок на автора
Чтобы ссылки в меню, виджетах и шаблонах указывали на новый адрес, подключаем фильтр author_link:
function wphost_custom_author_link($link, $author_id, $author_nicename) {
return home_url('/profile/' . $author_nicename . '/');
}
add_filter('author_link', 'wphost_custom_author_link', 10, 3);Теперь, когда вызовется get_author_posts_url() или аналогичные функции, они будут возвращать адрес с «profile».
3. Сбрасываем правила перезаписи
Чтобы новые правила заработали, нужно обновить правила перезаписи. Это можно сделать вручную, зайдя в админке WordPress в Настройки → Постоянные ссылки и нажав «Сохранить изменения» без изменений, или программно:
function wphost_flush_rewrite_on_activation() {
wphost_add_custom_author_rewrite();
flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'wphost_flush_rewrite_on_activation');<Если вы вносите код не через плагин, а в functions.php темы, проще обновить правила через админку.
Как убрать ссылку «author» полностью и использовать свой префикс
В примере выше мы заменили «author» на «profile». Если хотите убрать префикс и иметь URL вида site.ru/username, стоит быть осторожным, чтобы не конфликтовать с существующими страницами или записями.
Для этого нужно добавить более сложные правила, проверить конфликт с другими типами записей, и использовать фильтр request для правильной маршрутизации.
Пример добавления rewrite rule без префикса:
function wphost_remove_author_base() {
add_rewrite_rule(
'^([^/]+)/?$',
'index.php?author_name=$matches[1]',
'top'
);
}
add_action('init', 'wphost_remove_author_base');Но такой подход может привести к конфликтам — например, если у вас есть страница с названием совпадающим с ником автора. Для многих сайтов лучше использовать префикс.
Дополнительные советы и рекомендации
Проверка работоспособности
После внесения изменений проверьте, что авторские страницы корректно открываются по новому адресу, а старые URL возвращают 404 или делают редирект.
Если нужно сделать редирект со старых URL /author/username на новые, можно добавить в functions.php:
function wphost_redirect_old_author_urls() {
if (is_author() && strpos($_SERVER['REQUEST_URI'], '/author/') !== false) {
$author = get_queried_object();
wp_redirect(home_url('/profile/' . $author->user_nicename . '/'), 301);
exit;
}
}
add_action('template_redirect', 'wphost_redirect_old_author_urls');SEO и пользовательский опыт
Обязательно настройте 301 редиректы с прежних адресов, чтобы не потерять SEO-позиции. Также обновите все внутренние ссылки в меню и виджетах.
Использование плагинов
Хотя мы рассмотрели способ без плагинов, если вы предпочитаете готовые решения, есть плагины вроде Clearfy Pro, которые помогают управлять URL и оптимизацией WordPress, включая возможность менять базовые ссылки.
Заключение
Изменение адреса авторской страницы в WordPress — задача технически несложная, но требующая аккуратности при работе с rewrite rules и генерацией ссылок. Мы рассмотрели, как заменить префикс «author» на любой другой, чтобы улучшить структуру URL и адаптировать сайт под свои нужды. Такой подход поможет сделать сайт более профессиональным и удобным для пользователей.