wpcat.ru wordpress WPCat.ru

Как изменить URL автора в WordPress без плагинов

В стандартной установке 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 для страниц авторов на вашем сайте.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее