По умолчанию WordPress формирует URL страницы автора по схеме https://example.com/author/username. Однако в ряде случаев возникает необходимость изменить этот адрес, например, убрать слово author из URL или сделать его более дружественным для SEO и пользователей. В этой статье мы подробно рассмотрим, как изменить URL автора в WordPress без использования плагинов, используя функции темы и правила перезаписи.
Почему стоит менять URL автора в WordPress
Стандартный URL автора не всегда удобен и оптимален. Вот несколько причин, почему вы можете захотеть изменить его:
- SEO-оптимизация: удаление лишних слов из URL повышает его читаемость и привлекательность для поисковых систем.
- Улучшение пользовательского опыта: более короткие и понятные адреса проще запомнить и использовать.
- Безопасность: скройте имя пользователя, чтобы усложнить подбор логина для взлома.
Для решения этих задач можно изменить структуру URL автора вручную, без плагинов.
Как WordPress формирует URL автора: основы системы пермалинков
Чтобы изменить URL автора, нужно понимать, как WordPress обрабатывает адреса. Для страниц автора используется так называемый rewrite slug author. Этот слаг используется для создания правил перезаписи (rewrite rules), которые преобразуют URL в запросы к базе данных.
Изменить этот слаг можно с помощью фильтра author_rewrite_rules или путем регистрации своих правил. Однако проще и надежнее изменить базовый слаг через фильтр author_base, который отвечает за префикс URL автора.
Изменение базового слага автора через functions.php
Добавим в файл functions.php темы следующий код, чтобы изменить базовый слаг author на свой, например, profile:
function wptask_change_author_base() {
return 'profile';
}
add_filter('author_base', 'wptask_change_author_base');
// Перегенерируем правила перезаписи при активации темы
function wptask_flush_rewrite_rules() {
flush_rewrite_rules();
}
add_action('after_switch_theme', 'wptask_flush_rewrite_rules');Этот код меняет /author/username/ на /profile/username/. Не забудьте после добавления кода зайти в админке в Настройки → Постоянные ссылки и нажать «Сохранить изменения» для обновления правил.
Как полностью убрать базовый слаг автора из URL
Если нужно, чтобы URL автора выглядел как https://example.com/username без префикса, нужно добавить более сложные правила перезаписи. Это может привести к конфликтам с другими страницами или записями, поэтому делать это нужно аккуратно.
Пример решения:
function wptask_remove_author_base() {
global $wp_rewrite;
$wp_rewrite->author_base = '';
}
add_action('init', 'wptask_remove_author_base');
function wptask_add_author_rewrite_rules($wp_rewrite) {
$author_slug = get_option('author_base');
if ($author_slug === '') {
$authors = get_users(array('fields' => array('user_nicename')));
$author_names = wp_list_pluck($authors, 'user_nicename');
foreach ($author_names as $author) {
add_rewrite_rule('^' . $author . '/?$', 'index.php?author_name=' . $author, 'top');
}
}
}
add_action('generate_rewrite_rules', 'wptask_add_author_rewrite_rules');Этот код удаляет базовый слаг и добавляет индивидуальные правила для каждого автора. После добавления нужно снова обновить постоянные ссылки.
Однако такой подход требует поддержки при добавлении новых пользователей и может усложнить структуру сайта. Для большинства сайтов достаточно изменить базовый слаг, как показано ранее.
Скрытие имени пользователя в URL автора для безопасности
По умолчанию в URL автора отображается user_nicename, который часто совпадает с логином пользователя. Чтобы скрыть реальные имена пользователей и защитить сайт от перебора логинов, можно заменить отображаемый ник на другой слаг.
Для этого в functions.php добавим фильтр, который заменяет nicename на произвольный слаг, например, id пользователя или хеш:
function wptask_change_author_nicename($user_nicename, $user_id) {
// Пример: заменить nicename на user + ID
return 'user' . $user_id;
}
add_filter('pre_user_nicename', 'wptask_change_author_nicename', 10, 2);После этого при регистрации или обновлении пользователя nicename будет заменяться, и в URL автора будет использоваться этот слаг. Это повышает безопасность, но требует внимательной настройки, чтобы не сломать ссылки и функционал.
Пример интеграции с плагином Clearfy для оптимизации URL
Плагин Clearfy позволяет упростить работу с постоянными ссылками и имеет инструменты для оптимизации URL, включая управление базовым слагом автора.
Если вы хотите использовать плагин, достаточно активировать нужную опцию в Clearfy для замены базового слага author на более удобный или для скрытия имени пользователя.
Это отличный вариант для тех, кто не хочет погружаться в код, но хочет получить гибкие настройки URL.
Выводы и рекомендации
Изменение URL автора в WordPress без плагинов — вполне выполнимая задача, которая повышает удобство, безопасность и SEO вашего сайта. Рекомендуется:
- Использовать фильтр
author_baseдля замены базового слага на более подходящий. - При необходимости скрывать реальные nicename пользователей через фильтр
pre_user_nicename. - Внимательно тестировать сайт после изменений, особенно если убираете базовый слаг автора.
- Рассмотреть использование плагина Clearfy для упрощения процесса и дополнительных возможностей оптимизации.
Соблюдая эти рекомендации, вы сможете сделать URL страниц авторов более понятными, красивыми и безопасными без привлечения сторонних плагинов.