Как удалить /privat/ из URL в WordPress без плагинов

Диагностика проблемы с /privat/ в URL

Появление сегмента /privat/ в URL WordPress часто связано с неправильной структурой постоянных ссылок или с кастомной настройкой пользовательских типов записей или таксономий. Этот сегмент может появляться, например, когда используется кастомный пост-тип с аргументом rewrite по умолчанию или настроен базовый префикс для страниц.

Первым шагом диагностики является определение, откуда берётся /privat/ в URL. Для этого:

  • Проверьте настройки постоянных ссылок в Настройки > Постоянные ссылки в админке WordPress;
  • Просмотрите в файлах темы и плагинов регистрацию пользовательских типов записей (register_post_type) и таксономий (register_taxonomy) на предмет параметра rewrite;
  • Убедитесь, что в базе данных нет записей с префиксом /privat/ или с неправильными параметрами;
  • Проверьте файл .htaccess на наличие правил, добавляющих /privat/ в URL.

Пошаговое решение удаления /privat/ из URL

1. Анализ регистрации пользовательского типа записи

Если /privat/ появляется из-за пользовательского типа записи, например, privat, нужно изменить параметр rewrite при регистрации:

function custom_post_type() {
    register_post_type('privat', [
        'labels' => [
            'name' => 'Приватные записи',
        ],
        'public' => true,
        'rewrite' => ['slug' => ''], // Убираем префикс
        'has_archive' => false,
    ]);
}
add_action('init', 'custom_post_type');

Установка пустой строки в rewrite[slug] убирает /privat/ из URL.

2. Сброс постоянных ссылок

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

  • В админке перейти в Настройки > Постоянные ссылки;
  • Нажать кнопку «Сохранить изменения» без изменений;
  • Это обновит правила в .htaccess.

3. Изменение структуры ссылок для страниц

Если /privat/ появляется у страниц, проверьте, не установлен ли базовый префикс для страниц в теме или плагинах. Например, в functions.php может быть фильтр:

add_filter('page_rewrite_rules', function($rules) {
    $new_rules = [];
    foreach ($rules as $rule => $rewrite) {
        $new_rule = str_replace('privat/', '', $rule);
        $new_rules[$new_rule] = $rewrite;
    }
    return $new_rules;
});

Если такой код найден, его нужно удалить или исправить.

Проверка результата после внедрения

Чтобы убедиться, что /privat/ исчез из URL:

  • Откройте любые страницы или записи, ранее доступные по URL с /privat/, и проверьте, что теперь ссылки не содержат этот сегмент;
  • Проверьте, что страницы открываются без ошибок 404;
  • Используйте инструмент curl -I https://example.com/ваш-пост для проверки HTTP-заголовков — убедитесь, что нет перенаправлений с /privat/;
  • Очистите кэш браузера и, если используется, кэш плагинов.

Частые ошибки и как их исправить

  • Ошибка: После удаления /privat/ ссылки выдают 404.
    Причина: Правила перезаписи не сброшены.
    Решение: Сбросить постоянные ссылки в админке, как описано выше.
  • Ошибка: /privat/ появляется снова после обновления плагина.
    Причина: Плагин регистрирует пользовательский тип записи с жестко заданным префиксом.
    Решение: Либо переписать регистрацию пользовательского типа через дочернюю тему с приоритетом, либо обратиться к разработчику плагина.
  • Ошибка: Невозможно убрать /privat/ из URL для таксономии.
    Причина: Таксономия с параметром rewrite с префиксом.
    Решение: Изменить регистрацию таксономии, например:
register_taxonomy('privat_category', 'privat', [
    'rewrite' => ['slug' => ''],
]);

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

  • Избегайте пустых rewrite[slug] для пользовательских типов записи, если не уверены в последствиях — это может вызвать конфликт URL с другими типами или страницами.
  • Всегда проводите тестирование на staging-сервере перед изменением правил URL в продакшене.
  • Регулярно проверяйте .htaccess и другие файлы конфигурации на наличие неавторизованных изменений, которые могут влиять на структуру ссылок.
  • Для сложной маршрутизации используйте фильтры WordPress rewrite_rules_array и generate_rewrite_rules, чтобы иметь полный контроль над правилами.

Сравнение методов удаления /privat/ из URL

МетодОписаниеПлюсыМинусы
Изменение rewrite[slug] в register_post_typeУбирает префикс программноЧистое решение, контролируемое кодомМожет вызвать конфликты URL
Редактирование .htaccessПравила перенаправления и перезаписиБыстро и гибкоСложно поддерживать, риск ошибок
Фильтры перезаписи WordPressИспользование хуков для изменения правилГибко и интегрированоТребует понимания внутренней логики WP
Как удалить /privat/ из URL в WordPress без плагинов
19.06.2026
Как автоматизировать создание и удаление временных файлов в WordPress
23.02.2026
Как решить проблему нерабочих шорткодов WooCommerce после обновления
21.04.2026
Как добавить круглые иконки социальных сетей в WordPress
15.04.2026
Как автоматизировать управление кэшом в WordPress
10.04.2026