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

Слаги (slug) — это часть URL, которая отвечает за читаемость и SEO оптимизацию сайта на WordPress. По умолчанию WordPress создает слаги в нижнем регистре, что является стандартом для большинства сайтов. Однако бывают ситуации, когда необходимо изменить регистр слагов, например, сделать их заглавными или смешанными, чтобы улучшить визуальное восприятие или соответствовать брендбуку.

Что такое слаг (slug) и почему важен регистр

Слаг — это человекочитаемая часть URL после домена, например, wphelper.ru/kak-izmenit-registr-slugov-v-wordpress. Обычно слаги формируются из заголовков страниц и записей, преобразованных в нижний регистр и разделенных дефисами.

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

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

Как WordPress формирует слаги: функции и фильтры

При создании записи или страницы WordPress вызывает функцию sanitize_title(), которая преобразует заголовок в слаг. В свою очередь, она использует фильтр sanitize_title, который можно переопределить для изменения логики формирования слагов.

Чтобы изменить регистр слагов, достаточно добавить свой фильтр, который будет менять регистр результата sanitize_title(). При этом важно сохранить уникальность и корректность слагов.

Пример: изменение слагов на верхний регистр

Добавим следующий код в файл functions.php вашей темы или в кастомный плагин:

add_filter('sanitize_title', 'wphelper_change_slug_case', 10, 3);
function wphelper_change_slug_case($title, $raw_title, $context) {
    // Применяем верхний регистр только для постов и страниц
    if ($context === 'save') {
        // Убираем дефисы, заменяем пробелы на дефисы после strtoupper
        $slug = sanitize_title_with_dashes($raw_title);
        return strtoupper($slug);
    }
    return $title;
}

Этот код переводит слаг в верхний регистр при сохранении записи или страницы. Обратите внимание, что мы вызываем sanitize_title_with_dashes() для получения корректного слага, а затем переводим его в верхний регистр.

Как изменить регистр слагов для таксономий и пользовательских типов записей

Помимо стандартных записей и страниц, WordPress поддерживает пользовательские типы записей и таксономии, у которых тоже есть слаги. Чтобы изменить регистр их слагов, можно использовать аналогичный подход с фильтром sanitize_title, проверяя тип объекта.

Например, для пользовательской таксономии можно добавить условие проверки глобальной переменной или использовать хуки, которые вызываются при создании таксономии.

Пример: изменение слага таксономии на смешанный регистр

add_filter('sanitize_title', 'wphelper_change_taxonomy_slug_case', 10, 3);
function wphelper_change_taxonomy_slug_case($title, $raw_title, $context) {
    if ($context === 'save') {
        global $pagenow;
        if ($pagenow === 'edit-tags.php') {
            // Смешанный регистр: первая буква заглавная
            $slug = sanitize_title_with_dashes($raw_title);
            return ucfirst(strtolower($slug));
        }
    }
    return $title;
}

Этот код сделает первый символ слага таксономии заглавным, а остальные — строчными.

Практические рекомендации и проблемы при изменении регистра слагов

Изменение регистра слагов — нетипичная задача, и при ее реализации надо учитывать несколько важных моментов:

  • SEO: поисковые системы обычно воспринимают URL как регистрозависимые, но на практике большинство настроек сервера делают их нечувствительными к регистру. Тем не менее, лучше придерживаться одного стиля, чтобы избежать дублирования страниц.
  • Совместимость: плагины и темы могут ожидать слаги в нижнем регистре, изменение регистра может вызвать ошибки в запросах или отображении.
  • Редиректы: если сайт уже проиндексирован слаги в нижнем регистре, изменение регистра без корректных 301 редиректов приведет к потере трафика.

Поэтому, если вы хотите изменить регистр слагов, используйте фильтры, показанные выше, на этапе создания новых записей, а для уже существующих — настройте редиректы через .htaccess или плагин Redirection.

Полезные плагины для работы со слагами в WordPress

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

  • Permalink Manager Lite: удобный плагин для редактирования и массовой замены слагов, поддерживает различные типы записей и таксономий.
  • Custom Permalinks: позволяет задавать произвольные URL для записей и страниц, включая изменение регистра вручную.
  • Redirection: необходим для настройки редиректов при изменении URL, чтобы избежать 404 ошибок и потери SEO.

Комбинируя использование фильтров и этих плагинов, можно добиться нужного контроля над слагами и избежать проблем с совместимостью и SEO.

Итог: как грамотно изменить регистр слагов в WordPress

Изменение регистра слагов — задача, требующая аккуратности и понимания работы WordPress с URL. Используйте фильтр sanitize_title для автоматического изменения регистра при сохранении новых записей и таксономий. Обязательно тестируйте на тестовом сайте, чтобы избежать ошибок.

Для уже существующих страниц используйте плагины для массового редактирования URL и настраивайте 301 редиректы для сохранения SEO позиций. Ни в коем случае не меняйте регистр слагов напрямую в базе без учета URL и редиректов.

Такой подход позволит сохранить стабильность сайта, улучшить читаемость URL и соответствовать вашим требованиям по стилю адресов.

Как сделать производительный AJAX в WordPress без admin-ajax.php
06.04.2026
Как использовать WPCommunity для создания форума на WordPress
11.03.2026
Как избежать проблем при установке PHP 8 в WordPress
02.01.2026
Как удалить неиспользуемые meta-поля в WordPress для оптимизации базы данных
22.02.2026
Как создать настройку темы в WordPress
07.11.2025