Автоматическое создание ЧПУ для категорий WordPress

В WordPress ЧПУ (человеко-понятные URL) играют важную роль для SEO и удобства пользователей. Обычно адреса категорий формируются автоматически, но иногда они бывают слишком длинными, содержат лишние слова или не соответствуют требованиям проекта. В этой статье мы подробно разберём, как реализовать автоматическое создание и кастомизацию ЧПУ для категорий в WordPress, чтобы повысить удобство использования и улучшить SEO.

Что такое ЧПУ для категорий и зачем их кастомизировать

ЧПУ (человеко-понятный урл) — это адрес страницы, который легко читать и запоминать человеку, а также оптимизирован для поисковых систем. В WordPress URL категорий обычно выглядят так: site.ru/category/category-name. Однако бывает, что:

  • Нужно убрать префикс category из URL;
  • Сделать URL короче или более описательным;
  • Автоматически подставлять определённые слова в URL;
  • Изменять структуру URL без ручного редактирования каждой категории.

Автоматизация процесса помогает сэкономить время, особенно если категорий много или они часто меняются.

Как работает стандартное формирование ЧПУ категорий в WordPress

По умолчанию WordPress формирует URL для категорий на основе слага (slug) категории и базового префикса, который задаётся в настройках постоянных ссылок. Например, если базовый префикс для категорий — category, а слаг категории — news, итоговый URL будет site.ru/category/news.

Этот префикс можно менять в настройках, но если нужно более гибкое и автоматическое решение, придётся писать собственный код или использовать плагины.

Автоматическое создание и изменение ЧПУ категорий через код

Рассмотрим, как с помощью фильтров WordPress можно автоматически изменять URL категорий без ручного редактирования. Например, уберём префикс category и добавим кастомный префикс topics.

Использование фильтра category_link

Фильтр category_link позволяет модифицировать URL категорий перед выводом. Добавим функцию, которая заменит стандартный префикс:

function wptests_change_category_link($link, $term_id) {
    $term = get_term($term_id, 'category');
    if (!$term || is_wp_error($term)) {
        return $link;
    }
    $slug = $term->slug;
    $new_link = home_url('/topics/' . $slug . '/');
    return $new_link;
}
add_filter('category_link', 'wptests_change_category_link', 10, 2);

Теперь ссылки на категории будут иметь вид site.ru/topics/category-slug/.

Обработка запроса для новых URL через rewrite rules

Чтобы WordPress понимал новые URL и корректно обрабатывал запросы, нужно добавить rewrite правила:

function wptests_add_rewrite_rules() {
    add_rewrite_rule('^topics/([^/]+)/?$', 'index.php?category_name=$matches[1]', 'top');
}
add_action('init', 'wptests_add_rewrite_rules');

После добавления правил нужно обновить постоянные ссылки в админке (Настройки > Постоянные ссылки) или программно вызвать flush_rewrite_rules() один раз.

Автоматическое изменение слагов категорий при создании

Если необходимо, чтобы слаги категорий создавались автоматически по определённому шаблону (например, с префиксом), можно использовать хук wp_insert_term_data или обрабатывать событие создания категории.

function wptests_auto_slug_category($term_id, $tt_id, $taxonomy) {
    if ('category' !== $taxonomy) {
        return;
    }
    $term = get_term($term_id, $taxonomy);
    if (!$term || is_wp_error($term)) {
        return;
    }
    $new_slug = 'cat-' . sanitize_title($term->name);
    wp_update_term($term_id, $taxonomy, array('slug' => $new_slug));
}
add_action('created_category', 'wptests_auto_slug_category', 10, 3);

Этот код автоматически добавит префикс cat- к слагам категорий при их создании, например, категория «Новости» получит слаг cat-novosti.

Полезные плагины для управления ЧПУ категорий

Если писать код не хочется, можно использовать плагины, которые позволяют гибко работать с URL:

  • Permalink Manager Lite — позволяет менять URL для любых таксономий, в том числе категорий, с возможностью массового редактирования и шаблонов.
  • Remove Category URL — простой плагин для удаления префикса category из URL.
  • Yoast SEO — в платной версии есть опции для управления ЧПУ и перенаправлениями.

Использование плагинов удобно, но не всегда даёт полный контроль, который можно получить с помощью своих функций.

Советы по SEO при изменении ЧПУ категорий

При изменении структуры URL важно не потерять позиции в поиске и не вызвать ошибки 404. Для этого:

  • Настройте 301 редиректы с старых URL на новые.
  • Проверьте sitemap и обновите ссылки.
  • Используйте инструменты Google Search Console для отслеживания ошибок.

Пример создания редиректа на основе фильтра template_redirect:

function wptests_redirect_old_category() {
    if (is_category() && strpos($_SERVER['REQUEST_URI'], '/category/') !== false) {
        $new_url = str_replace('/category/', '/topics/', $_SERVER['REQUEST_URI']);
        wp_redirect(home_url($new_url), 301);
        exit;
    }
}
add_action('template_redirect', 'wptests_redirect_old_category');

Заключение

Автоматизация создания и изменения ЧПУ категорий в WordPress — задача, которую можно решить как с помощью кода, так и с помощью плагинов. Важно помнить о необходимости корректной обработки запросов и настройке редиректов для сохранения SEO. Приведённые примеры помогут вам быстро внедрить кастомные URL категорий, улучшить структуру сайта и сделать её более удобной для пользователей и поисковых систем.

Как использовать WPCommunity для создания социальной сети на WordPress
26.02.2026
Как отключить Emoji в WordPress для ускорения сайта
19.04.2026
WooCommerce: как программно удалить вариации товаров и связанные SKU
12.05.2026
Как использовать AJAX в WordPress для обновления контекста без перезагрузки страницы
17.12.2025
Как создать собственный тип записи (custom post type) в WordPress
25.11.2025