Как изменить уникальный slug в WordPress для записей без плагинов

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

Что такое slug в WordPress и зачем его менять

Slug — это часть URL, которая идентифицирует конкретную запись, страницу или таксономию. Например, для записи с адресом https://example.com/kak-sozdat-shortkod slug — это kak-sozdat-shortkod.

Изменение slug полезно для:

  • Оптимизации URL под поисковые запросы;
  • Исправления опечаток и ошибок в адресах;
  • Упрощения и стандартизации структуры ссылок;
  • Изменения языка или транслитерации;
  • Удаления лишних слов и символов.

Однако важно помнить, что изменение slug может привести к потере старых ссылок, если не настроить правильные редиректы.

Как изменить slug записи через админку WordPress

Самый простой способ изменить slug — воспользоваться стандартным редактором WordPress.

  1. Откройте нужную запись для редактирования.
  2. Под заголовком найдите поле с URL или нажмите кнопку «Изменить» рядом с permalink.
  3. Внесите нужный slug, используя латинские буквы, цифры и дефисы.
  4. Сохраните изменения, нажав «Обновить».

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

Программное изменение slug записи: пример функции

Ниже пример функции wphost_change_post_slug, которая меняет slug по ID записи. Это удобно для автоматизации или интеграции с другими скриптами.

function wphost_change_post_slug($post_id, $new_slug) {
    // Проверяем, что запись существует
    $post = get_post($post_id);
    if (!$post) {
        return new WP_Error('no_post', 'Запись не найдена');
    }

    // Проверяем уникальность slug
    $unique_slug = wp_unique_post_slug($new_slug, $post_id, $post->post_status, $post->post_type, $post->post_parent);

    // Обновляем запись с новым slug
    $update_result = wp_update_post([
        'ID' => $post_id,
        'post_name' => $unique_slug
    ], true);

    if (is_wp_error($update_result)) {
        return $update_result;
    }

    return true;
}

Использовать функцию можно так:

$result = wphost_change_post_slug(123, 'novyj-slug-dlja-stati');
if (is_wp_error($result)) {
    echo 'Ошибка: ' . $result->get_error_message();
} else {
    echo 'Slug изменён успешно';
}

Функция проверяет, существует ли запись, генерирует уникальный slug с помощью встроенной функции wp_unique_post_slug, и обновляет запись.

Особенности и подводные камни при изменении slug

Уникальность slug и конфликты URL

WordPress не допускает одинаковые slug для записей одного типа с одним родителем (в случае иерархических типов). Если попытаться установить slug, который уже занят, WordPress добавит суффикс, например my-post-2. Чтобы избежать этого, используйте функцию wp_unique_post_slug, как в примере выше.

Редиректы и SEO

После изменения slug старые URL перестают работать, если не настроить 301 редиректы. Для этого можно:

  • Использовать плагины типа Clearfy Pro, которые умеют автоматически создавать редиректы;
  • Добавить редиректы вручную в .htaccess или через сервер (Nginx);
  • Реализовать редиректы программно через хуки WordPress.

Изменение slug для кастомных типов записей и таксономий

Для кастомных типов постов и таксономий slug хранится в том же поле post_name (для записей) или в терминах таксономии. Пример изменения slug термина:

function wphost_change_term_slug($term_id, $taxonomy, $new_slug) {
    $term = get_term($term_id, $taxonomy);
    if (is_wp_error($term) || !$term) {
        return new WP_Error('no_term', 'Термин не найден');
    }

    $result = wp_update_term($term_id, $taxonomy, ['slug' => $new_slug]);
    return $result;
}

Так можно менять URL категорий, меток и других таксономий.

Практические советы по работе со slug

Используйте транслитерацию

Для русскоязычных сайтов рекомендуется использовать транслитерацию в slug. Это улучшает читаемость URL и SEO. Можно применить стандартные библиотеки транслитерации или плагины с такой функцией.

Избегайте частых изменений

Частые изменения slug негативно влияют на SEO и пользовательский опыт. Планируйте структуру URL заранее.

Автоматизация с помощью плагинов

Если планируется массовое изменение slug, можно использовать плагины, например, Clearfy Pro, которые имеют функции управления URL и автоматического создания редиректов.

Заключение: лучший подход к изменению slug в WordPress

Изменение slug — мощный инструмент для оптимизации и управления адресами сайта. Лучший подход зависит от целей и объёма изменений:

  • Для единичных случаев — вручную через админку.
  • Для программного контроля — использовать функции и хуки, как в примерах выше.
  • Для массовых изменений и SEO — сочетать программные методы с плагинами, которые умеют создавать редиректы.

Не забывайте проверять работоспособность старых URL и настраивать 301 редиректы, чтобы сохранить позиции сайта в поисковых системах.

Как автоматически отключать неиспользуемые плагины в WordPress по расписанию
26.04.2026
Как избежать конфликтов между плагинами в WordPress
31.03.2026
Как удалить неиспользуемые метаданные в WordPress для оптимизации сайта
10.01.2026
Как использовать Redis для ускорения WordPress: настройка и примеры
10.03.2026
Как изменить функциональность формы регистрации WordPress без плагинов
16.12.2025