В стандартной установке WordPress URL страницы автора выглядит примерно так: https://ваш-сайт.ru/author/username/. Иногда возникает необходимость изменить этот адрес — например, чтобы улучшить SEO, скрыть имя пользователя, сделать URL более читабельным или соответствующим стилю сайта. В этой статье мы подробно разберём, как изменить URL автора без использования плагинов, с примерами кода, которые можно добавить в файл functions.php вашей темы.
Почему стоит изменить URL автора в WordPress
Стандартный URL автора содержит слово author, что не всегда удобно или желательно. Вот несколько причин, почему стоит изменить его:
- Безопасность: скрыть имя пользователя, чтобы усложнить подбор логина для взлома.
- SEO: сделать URL более релевантным теме сайта или ключевым словам.
- Удобство: сделать адрес более коротким и понятным для пользователей.
Все эти задачи можно решить простым изменением правил перезаписи (rewrite rules) в WordPress.
Как изменить базу URL автора с помощью add_rewrite_rule
Основная идея — заменить стандартную часть author на другую в URL, например, profile или user. Для этого воспользуемся хуком init и функцией add_rewrite_rule.
Добавьте в functions.php следующий код:
function wpcat_change_author_base() {
global $wp_rewrite;
$wp_rewrite->author_base = 'profile'; // меняем 'author' на 'profile'
$wp_rewrite->flush_rules(); // обновляем правила перезаписи
}
add_action('init', 'wpcat_change_author_base');Здесь мы изменили базу URL автора на profile. Теперь адрес страницы автора будет выглядеть так: https://ваш-сайт.ru/profile/username/.
Важно: вызов flush_rules() на каждом запросе снижает производительность. Лучше вызвать его один раз вручную (например, при активации темы) или временно раскомментировать и потом убрать.
Оптимальный способ обновления правил
Для более правильной работы рекомендуем обновлять правила только при активации темы или плагина:
function wpcat_change_author_base_init() {
global $wp_rewrite;
$wp_rewrite->author_base = 'profile';
}
add_action('init', 'wpcat_change_author_base_init');
function wpcat_flush_rewrite_rules() {
flush_rewrite_rules();
}
add_action('after_switch_theme', 'wpcat_flush_rewrite_rules');Так мы задаём новую базу для автора и обновляем правила только при переключении темы.
Как скрыть имя пользователя в URL автора
Если ваша задача — скрыть имя пользователя в URL, например, использовать ID или ник, можно реализовать свой кастомный формат.
Рассмотрим пример, где в URL отображается ID автора вместо логина:
function wpcat_rewrite_author_id() {
add_rewrite_rule('^authorid/([0-9]+)/?$', 'index.php?author=$matches[1]', 'top');
}
add_action('init', 'wpcat_rewrite_author_id');Теперь адрес будет выглядеть так: https://ваш-сайт.ru/authorid/123/, где 123 — ID пользователя. Для удобства можно сделать редирект с устаревшего адреса на новый, чтобы не потерять трафик.
Редирект с старого URL на новый
function wpcat_redirect_old_author_url() {
if (is_author()) {
$author_id = get_queried_object_id();
$new_url = home_url('/authorid/' . $author_id . '/');
if ($_SERVER['REQUEST_URI'] !== parse_url($new_url, PHP_URL_PATH)) {
wp_redirect($new_url, 301);
exit;
}
}
}
add_action('template_redirect', 'wpcat_redirect_old_author_url');Этот код проверит текущий URL и сделает редирект на новый формат, если пользователь зашёл по старому адресу.
Как изменить шаблон страницы автора
Иногда вместе с изменением URL нужно модифицировать внешний вид страницы автора. WordPress по умолчанию использует шаблон author.php или archive.php.
Чтобы создать кастомный шаблон для новых URL, создайте файл author-profile.php и подключите его через фильтр:
function wpcat_author_template($template) {
if (is_author()) {
global $wp_rewrite;
$author_base = $wp_rewrite->author_base;
if ($author_base === 'profile') {
$new_template = locate_template('author-profile.php');
if ($new_template) {
return $new_template;
}
}
}
return $template;
}
add_filter('author_template', 'wpcat_author_template');Теперь вы можете полностью контролировать вывод страницы автора с новым URL.
Плагины для управления URL автора
Хотя мы рассмотрели способ без плагинов, для удобства можно использовать готовые решения, если вам нужна расширенная функциональность:
- Edit Author Slug — позволяет менять базу и слаг автора через админку.
- WP Author Slug — похожий плагин с поддержкой массового редактирования.
Однако использование кода напрямую полезно для понимания и минимизации нагрузки на сайт.
Итоги и рекомендации
Изменение URL автора в WordPress — несложная задача, если использовать правильные хуки и методы. Главное — помнить о необходимости обновления правил перезаписи и тестировать работу сайта после изменений.
Рекомендуется:
- Изменять
$wp_rewrite->author_baseв хукеinit. - Вызывать
flush_rewrite_rules()только при необходимости, например, при активации темы. - При необходимости создавать редиректы с устаревших URL.
- Использовать кастомные шаблоны для страниц автора, если нужно изменить дизайн.
Так вы получите удобный, безопасный и SEO-дружественный URL для страниц авторов на вашем сайте.