В WordPress слаги таксономий (категорий, меток и пользовательских таксономий) играют важную роль в формировании ЧПУ (человеко-понятных урлов). Правильное и уникальное их использование позволяет избежать конфликтов с другими URL на сайте и улучшить SEO.
Почему важна уникальность слагов для таксономий
Если у разных таксономий или даже постов совпадают слаги, то при запросе URL произойдет конфликт. Например, если у категории и пользовательской таксономии одинаковый слаг, WordPress не сможет однозначно определить, что именно нужно показать пользователю. В результате возможны 404 ошибки или показ неверного контента.
Уникальные слаги позволяют:
- Избежать конфликтов URL и ошибок 404;
- Улучшить структуру сайта и навигацию;
- Облегчить работу с ЧПУ для SEO-оптимизации;
- Повысить удобство для пользователей и администраторов сайта.
Как задать уникальные слаги при регистрации пользовательской таксономии
Для регистрации таксономий в WordPress обычно используется функция register_taxonomy(). В её аргументах есть параметр rewrite, где вы можете указать слаг.
Рассмотрим пример регистрации пользовательской таксономии «Темы» с уникальным слагом wp5_topic:
function wp5_register_taxonomy_topics() {
$labels = array(
'name' => 'Темы',
'singular_name' => 'Тема',
'search_items' => 'Поиск тем',
'all_items' => 'Все темы',
'edit_item' => 'Редактировать тему',
'update_item' => 'Обновить тему',
'add_new_item' => 'Добавить новую тему',
'new_item_name' => 'Новое имя темы',
'menu_name' => 'Темы',
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'wp5_topic'),
);
register_taxonomy('wp5_topic', array('post'), $args);
}
add_action('init', 'wp5_register_taxonomy_topics');Обратите внимание на параметр 'rewrite' => array('slug' => 'wp5_topic'). Он задаёт уникальный слаг для этой таксономии.
Как проверить и изменить слаги у уже существующих таксономий
Если у вас уже есть таксономии с конфликтующими слагами, их нужно изменить. Для этого:
- В файле с регистрацией таксономии найдите вызов
register_taxonomy()и измените параметрrewrite['slug']. - Если таксономия зарегистрирована плагином, то лучше использовать фильтр
register_taxonomy_argsдля изменения параметров без правки плагина напрямую. - После изменения слагов важно обновить постоянные ссылки (перейдите в Настройки > Постоянные ссылки и нажмите «Сохранить изменения» без изменений), чтобы обновить правила перезаписи.
Пример изменения слага через фильтр:
function wp5_change_taxonomy_slug($args, $taxonomy) {
if ($taxonomy === 'category') {
$args['rewrite']['slug'] = 'wp5_category';
}
return $args;
}
add_filter('register_taxonomy_args', 'wp5_change_taxonomy_slug', 10, 2);Автоматическая проверка уникальности слагов при регистрации таксономий
Чтобы не допускать дублирование слагов, можно написать функцию, которая проверит, не используется ли уже нужный слаг другими таксономиями, и если используется — автоматически изменит его.
Пример функции для проверки и корректировки слага:
function wp5_get_unique_taxonomy_slug($desired_slug) {
$taxonomies = get_taxonomies(array(), 'objects');
$existing_slugs = array();
foreach ($taxonomies as $taxonomy) {
if (!empty($taxonomy->rewrite['slug'])) {
$existing_slugs[] = $taxonomy->rewrite['slug'];
}
}
$slug = $desired_slug;
$suffix = 1;
while (in_array($slug, $existing_slugs)) {
$slug = $desired_slug . '-' . $suffix;
$suffix++;
}
return $slug;
}
// Использование при регистрации таксономии
function wp5_register_custom_taxonomy() {
$slug = wp5_get_unique_taxonomy_slug('wp5_topic');
register_taxonomy('wp5_topic', 'post', array(
'rewrite' => array('slug' => $slug),
'label' => 'Темы',
'hierarchical' => true,
));
}
add_action('init', 'wp5_register_custom_taxonomy');Такой подход защищает от случайных конфликтов и позволяет динамически назначать уникальные слаги.
Плагины для управления таксономиями и слагами
Для удобства работы с таксономиями вы можете использовать плагины:
- Custom Post Type UI — удобный интерфейс для создания и редактирования таксономий и типов записей. Позволяет задавать кастомные слаги без кода.
- Permalink Manager Lite — позволяет управлять структурой URL, в том числе таксономий, и корректировать слаги после регистрации.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wp5.ru&utm_medium=article&utm_campaign=kak-ustanovit-unikalnye-slagi-dlya-taksonomij-v-wordpress) — оптимизационный плагин с настройками по улучшению SEO и управления URL.
Резюме по установке уникальных слагов для таксономий
Уникальные слаги таксономий — обязательное условие для корректной работы ссылок и избежания конфликтов в WordPress. Рекомендуется:
- Всегда явно задавать слаг в параметре
rewriteпри регистрации таксономий; - Проверять существующие слаги таксономий и избегать дублирования;
- Использовать автоматические проверки уникальности слагов, если таксономий много и они динамические;
- Обновлять постоянные ссылки после изменения слагов;
- Использовать специализированные плагины для удобства, если не хотите работать с кодом напрямую.
Используя эти рекомендации, вы обеспечите стабильную работу своего сайта на WordPress и улучшите его SEO-показатели.