В 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 категорий, улучшить структуру сайта и сделать её более удобной для пользователей и поисковых систем.