В стандартной установке WordPress URL страницы автора выглядит как site.ru/author/username. Иногда возникает необходимость изменить этот URL для улучшения SEO, повышения безопасности или стилистического соответствия сайту. В этой статье разберём, как изменить базу URL автора и даже структуру ссылки без использования плагинов, только средствами темы и WordPress API.
Почему стоит изменить URL автора в WordPress
Существует несколько причин изменить URL автора:
- Безопасность: Стандартный префикс
authorдаёт подсказку хакерам о наличии учётных записей. Смена на нестандартный префикс усложняет автоматические атаки. - SEO: Иногда лучше сделать URL более понятным или релевантным для поисковых систем, например, использовать
profileилиwriters. - Удобство: Можно сделать URL более коротким или стилистически подходящим для конкретного сайта.
Для решения задачи нам понадобятся функции WordPress для работы с правилами перезаписи (rewrite rules) и фильтры для изменения базового префикса автора.
Изменение базы URL автора через фильтр author_rewrite_rules и author_base
Для начала можно изменить базу префикса author через фильтр author_base. Добавим следующий код в файл functions.php вашей темы или в подключаемый файл плагина:
function wpbloger_author_base() {
return 'profile'; // Заменяем 'author' на 'profile'
}
add_filter('author_base', 'wpbloger_author_base');
Этот код изменит URL с /author/username на /profile/username. Но чтобы WordPress узнал новые правила, необходимо сбросить правила перезаписи. Для этого зайдите в админку → Настройки → Постоянные ссылки и нажмите «Сохранить изменения» без внесения правок.
Изменение шаблона правил перезаписи автора
В некоторых случаях для более гибкой настройки необходимо самостоятельно добавить правила перезаписи. Это делается через хук rewrite_rules_array:
function wpbloger_custom_author_rewrite_rules($rules) {
$new_rules = array();
$new_rules['profile/([^/]+)/?$'] = 'index.php?author_name=$matches[1]';
return $new_rules + $rules;
}
add_filter('rewrite_rules_array', 'wpbloger_custom_author_rewrite_rules');
Этот код создаст правило, которое направит запросы с базой profile на отображение страниц автора. Вместе с фильтром author_base это полностью меняет URL автора.
Как изменить URL автора на кастомный с дополнительным параметром
Если нужно сделать более сложный URL, например /profile/username/bio с дополнительной страницей, можно добавить собственный rewrite тег и правило:
function wpbloger_add_rewrite_tags_and_rules() {
add_rewrite_tag('%profile_section%', '([^&]+)');
add_rewrite_rule('^profile/([^/]+)/([^/]+)/?$', 'index.php?author_name=$matches[1]&profile_section=$matches[2]', 'top');
}
add_action('init', 'wpbloger_add_rewrite_tags_and_rules');
В этом случае для обработки дополнительного параметра profile_section в шаблоне автора можно использовать условные конструкции:
if (get_query_var('profile_section') === 'bio') {
// Выводим биографию автора
}
Это позволяет создать кастомные подстраницы для автора без установки плагинов.
Пример использования плагина Clearfy Pro для управления URL
Если вы предпочитаете готовое решение, плагин Clearfy Pro позволяет управлять URL и другими аспектами оптимизации WordPress без ручного кода. Там есть модуль для изменения структуры URL автора и скрытия стандартных префиксов.
Как проверить и сбросить правила перезаписи для новых URL
После внесения изменений важно сбросить правила перезаписи, иначе новые URL работать не будут. Сделать это можно программно, добавив временный код:
function wpbloger_flush_rewrite_rules() {
flush_rewrite_rules();
}
add_action('after_switch_theme', 'wpbloger_flush_rewrite_rules');
Этот код автоматически сбросит правила при смене темы. После того, как URL заработают, его нужно удалить, чтобы не вызывать лишних сбросов.
Обзор альтернативных решений и плагинов для кастомизации URL автора
Кроме ручного кода и Clearfy Pro, есть и другие плагины, которые позволяют менять URL автора:
- Edit Author Slug — простой плагин для изменения слага автора, но иногда вызывает конфликты с другими плагинами.
- Permalink Manager Lite — универсальный менеджер постоянных ссылок, позволяет менять URL любых типов записей и таксономий, включая автора.
Однако ручное решение через фильтры и rewrite rules даёт полный контроль без лишнего кода и зависимости от сторонних плагинов.
Итоги и рекомендации
Изменение URL автора в WordPress без плагинов — задача вполне выполнимая и полезная для кастомизации сайта. Использование фильтра author_base в паре с правильными rewrite правилами позволяет адаптировать URL под нужды проекта. Для более сложных вариантов можно добавить дополнительные параметры и обрабатывать их в шаблонах. Если же вы не хотите писать код, рассмотрите плагин Clearfy Pro — удобный инструмент для управления URL и другими настройками WordPress.