smsc banner 468x60smsc banner 728x90smsc banner 930x180kwork banner 468x60kwork banner 728x90kwork banner 930x180etxt banner 468x60etxt banner 728x90etxt banner 930x180

Как из стандартного типа записи post удалить «uncategorized» из ссылки в WordPress?

При создании записей в WordPress без указания категории по умолчанию им присваивается категория «Без рубрики» («Uncategorized»). Это приводит к появлению лишней части ссылки, например: https://example.com/bez-rubriki/nazvanie-zapisi. Если вы хотите убрать «bez-rubriki» из URL, то вам потребуется немного модифицировать настройки и добавить пользовательский код. В этой статье я покажу, как это сделать и избежать ошибок 404.

Шаг 1: Проблема категории «Uncategorized»

В WordPress для записей без категории используется дефолтная категория «Uncategorized» (или её локализованный перевод, например, «Без рубрики»). Даже если такая категория не нужна, она продолжает отображаться в URL, что может ухудшить структуру ссылок и восприятие их пользователями.

Некоторые пытаются решить эту проблему, переименовывая категорию «Без рубрики» на что-то более подходящее. Но в нашем случае цель — полностью убрать эту категорию из ссылки.

Шаг 2: Пример проблемы 404 при удалении «Без рубрики»

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

Рассмотрим рабочее решение, которое не только удалит «uncategorized» из ссылок, но и сделает их корректно обрабатываемыми.

Шаг 3: Рабочий код для удаления «Без рубрики»

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

// Удаление категории из ссылки
function remove_category_from_permalink($permalink, $post) {
    if ($post->post_type == 'post') {
        $permalink = str_replace('/bez-rubriki/', '/', $permalink);
    }
    return $permalink;
}
add_filter('post_link', 'remove_category_from_permalink', 10, 2);

// Изменение правил маршрутизации
function remove_category_rewrite_rules($rules) {
    $new_rules = [];
    
    // Добавляем правило для постов без рубрики
    $new_rules['([^/]+)/?$'] = 'index.php?name=$matches[1]';

    return $new_rules + $rules;
}
add_filter('rewrite_rules_array', 'remove_category_rewrite_rules');

// Очищаем правила и обновляем их
function flush_rewrite_rules_on_activation() {
    flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'flush_rewrite_rules_on_activation');
register_deactivation_hook(__FILE__, 'flush_rewrite_rules_on_activation');

Что делает этот код?

  1. Удаляет «bez-rubriki» из URL: Фильтр post_link проверяет, относится ли ссылка к записи (post) и удаляет из неё часть /bez-rubriki/.
  2. Обновляет правила маршрутизации: Добавляется новое правило, позволяющее WordPress правильно обрабатывать URL без категории.
  3. Обновляет правила маршрутизации при активации: Функция flush_rewrite_rules очищает и обновляет rewrite-правила при активации или деактивации плагина.

Шаг 4: Сохранение постоянных ссылок

После добавления кода выполните следующие действия:

  1. Перейдите в админ-панель WordPress.
  2. Откройте Настройки → Постоянные ссылки.
  3. Нажмите кнопку Сохранить изменения, даже если вы ничего не меняли.

Это действие обновит правила маршрутизации, и WordPress начнёт правильно обрабатывать новые ссылки.

Шаг 5: Проверка работы

  1. Создайте запись без категории.
  2. Откройте её ссылку. Она должна выглядеть как https://example.com/nazvanie-zapisi.
  3. Убедитесь, что запись открывается без ошибки 404.

Вывод

Теперь вы знаете, как удалить категорию «Без рубрики» из ссылок записей в WordPress. Это улучшит читаемость URL, сделает их короче и понятнее для пользователей. Такое изменение положительно скажется на восприятии сайта и его SEO.

beget banner 480x320beget banner 728x90beget banner 120x600skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как на WordPress сделать архивную страницу со всеми авторами и структуру ссылок домен/authors/author

Чтобы сделать архивную страницу в WordPress, которая перечисляет всех авторов и предоставляет доступ к их страницам профилей через структуру ссылок вида домен/authors/author, нужно выполнить следующие шаги: 1. Создание пользовательской страницы для архива авторов Создайте файл шаблона: В вашей активной теме создайте файл page-authors.php. Это будет специальная страница, отображающая список всех авторов. Добавьте код для вывода…
Подробнее

Как сделать функцию для редиректа со старых ссылок сайта на новые в WordPress?

Для создания функции редиректа в WordPress со старых ссылок на новые, можно использовать файл .htaccess или написать специальный код в functions.php темы. Рассмотрим оба варианта: 1. Редирект через .htaccess Если вам нужно выполнить редиректы для множества старых URL, проще всего это сделать через файл .htaccess в корне вашего сайта. Для этого откройте или создайте файл…
Подробнее

С помощью каких инструментов можно сделать перенос мультисайта (сети сайтов WordPress) на другой домен/хостинг?

Для переноса мультисайта WordPress на другой домен или хостинг можно использовать следующие инструменты: 1. Мануальный перенос: 2. Плагины для переноса: 3. Хостинг-панели: 4. Командная строка: 5. Консультации у хостинг-провайдеров:
Подробнее