Как удалить или изменить URL типа записи в WordPress без пересоздания

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

Почему важно правильно изменить URL типа записи

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

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

Как WordPress формирует URL для типов записей

Когда вы регистрируете кастомный тип записи через функцию register_post_type(), одним из параметров является rewrite, где указывается slug для формирования URL. Например:

register_post_type('wpdemo_portfolio', array(
    'labels' => array('name' => 'Портфолио'),
    'public' => true,
    'rewrite' => array('slug' => 'portfolio'),
));

Если вы хотите изменить slug с portfolio на my-works, нужно изменить параметр rewrite и обновить правила перезаписи (rewrite rules).

Пример изменения slug кастомного типа записи без пересоздания

Чтобы правильно изменить URL, выполните следующие шаги:

  1. В файле регистрации типа записи измените параметр rewrite['slug'] на новый.
  2. Очистите правила перезаписи, чтобы WordPress обновил маршруты.
  3. Настройте 301 редиректы со старых URL на новые, чтобы сохранить SEO.

Пример кода для файла functions.php вашего шаблона или плагина:

function wpdemo_change_post_type_slug() {
    register_post_type('wpdemo_portfolio', array(
        'labels' => array('name' => 'Портфолио'),
        'public' => true,
        'rewrite' => array('slug' => 'my-works'), // Новый slug
        'has_archive' => true,
    ));
}
add_action('init', 'wpdemo_change_post_type_slug', 20);

// Функция для очистки rewrite правил
function wpdemo_flush_rewrite() {
    wpdemo_change_post_type_slug();
    flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'wpdemo_flush_rewrite');

Обратите внимание, что flush_rewrite_rules() следует вызывать только при активации плагина или вручную, иначе это негативно скажется на производительности.

Настройка 301 редиректов для сохранения SEO

Чтобы не потерять позиции в поиске и не вызывать ошибки, нужно настроить перенаправления с старых адресов на новые. Например, если ранее адрес был /portfolio/post-name, а стал /my-works/post-name.

Для этого можно использовать плагин Redirection или добавить код в файл .htaccess:

RedirectMatch 301 ^/portfolio/(.*)$ /my-works/$1

Или программно через хук template_redirect:

function wpdemo_redirect_old_portfolio_urls() {
    if (strpos($_SERVER['REQUEST_URI'], '/portfolio/') === 0) {
        $new_url = str_replace('/portfolio/', '/my-works/', $_SERVER['REQUEST_URI']);
        wp_redirect(site_url($new_url), 301);
        exit;
    }
}
add_action('template_redirect', 'wpdemo_redirect_old_portfolio_urls');

Как проверить и отладить изменения URL

После внесения изменений важно проверить, что:

  • Старые URL корректно перенаправляются на новые с кодом 301.
  • Новые URL работают и не выдают 404 ошибки.
  • В админке WordPress записи отображаются корректно и ссылки на них ведут на новые URL.

Для проверки можно использовать инструменты браузера, а также специальные SEO-плагины или онлайн-сервисы проверки редиректов.

Пример использования плагина Clearfy Pro для управления URL

Если вы используете плагин Clearfy Pro, он предоставляет удобный интерфейс для настройки URL и перезаписи ссылок без необходимости писать код. В дополнение к ручным методам вы можете:

  • Изменять slug типов записей и таксономий через настройки.
  • Настраивать автоматические редиректы при смене URL.
  • Оптимизировать структуру ссылок для SEO.

Это может сэкономить время и снизить риски ошибок при ручном редактировании.

Итоговые рекомендации

Изменение URL типа записи в WordPress без пересоздания — задача, которую можно решить корректно, следуя алгоритму:

  • Измените параметр rewrite['slug'] при регистрации типа записи.
  • Обновите правила перезаписи с помощью flush_rewrite_rules() при активации.
  • Настройте 301 редиректы для сохранения SEO и корректной работы ссылок.
  • Проверьте результат на наличие ошибок и корректность перенаправлений.

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

Как удалить или изменить URL типа записи в WordPress без пересоздания
09.01.2026
Как использовать хуки WordPress для автоматизации задач
21.12.2025
Автоматическое обновление данных в реальном времени в WordPress
01.12.2025
Как использовать WPRemark для автоматического ответа на комментарии WordPress
08.02.2026
Как создать и использовать кастомные таксономии в WordPress
05.01.2026