Как удалить слэш в контекстных связях WordPress

В WordPress по умолчанию URL-адреса часто заканчиваются на слэш (/), что влияет на SEO и удобство пользователей. В некоторых случаях может возникнуть необходимость удалить этот завершающий слэш из контекстных связей (permalinks), например, для кастомных типов записей, таксономий или при создании REST API эндпоинтов. В этой статье мы подробно рассмотрим, как убрать слэш из URL в WordPress с помощью настроек, фильтров и плагинов.

Почему WordPress добавляет завершающий слэш в URL

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

Системный подход к добавлению слэша обусловлен функцией user_trailingslashit(), которая применяется при генерации URL. Чтобы изменить это поведение, нужно вмешаться именно на этом уровне.

Удаление завершающего слэша из URL для кастомных типов записей

Рассмотрим пример, как убрать слэш для кастомного типа записей, например, product. Для этого в момент регистрации типа записи нужно указать параметр rewrite с опцией with_front и дополнительно применить фильтр для удаления слэша.

function wpwp_register_product_cpt() {
    register_post_type('product', array(
        'labels' => array('name' => 'Продукты'),
        'public' => true,
        'rewrite' => array('slug' => 'product', 'with_front' => false),
        'has_archive' => true,
    ));
}
add_action('init', 'wpwp_register_product_cpt');

// Убираем слэш для custom post type product
function wpwp_remove_trailing_slash( $url, $type, $post ) {
    if ( $type === 'post_type_archive' && $post === 'product' ) {
        return untrailingslashit( $url );
    }
    return $url;
}
add_filter( 'post_type_archive_link', 'wpwp_remove_trailing_slash', 10, 3 );

В данном коде мы регистрируем кастомный тип записей и с помощью фильтра post_type_archive_link удаляем завершающий слэш из URL архива продуктов.

Удаление слэша для таксономий

Для таксономий принцип похожий. Например, у вас есть таксономия genre, и вы хотите убрать слэш:

function wpwp_register_genre_taxonomy() {
    register_taxonomy('genre', 'post', array(
        'labels' => array('name' => 'Жанры'),
        'rewrite' => array('slug' => 'genre', 'with_front' => false),
        'hierarchical' => true,
    ));
}
add_action('init', 'wpwp_register_genre_taxonomy');

// Убираем слэш для таксономии genre
function wpwp_remove_taxonomy_trailing_slash($link, $term, $taxonomy) {
    if ($taxonomy === 'genre') {
        return untrailingslashit($link);
    }
    return $link;
}
add_filter('term_link', 'wpwp_remove_taxonomy_trailing_slash', 10, 3);

Это позволит получить URL вида /genre/fiction вместо /genre/fiction/.

Обработка запросов без завершающего слэша

Удаление слэша из URL требует корректной обработки запросов, иначе WordPress может выдавать 404 ошибку. Для этого нужно добавить правила перезаписи (rewrite rules) и фильтры, чтобы распознавать URL без слэша.

function wpwp_add_rewrite_rules_no_slash() {
    add_rewrite_rule('^product/?$', 'index.php?post_type=product', 'top');
    add_rewrite_rule('^genre/([^/]+)$', 'index.php?genre=$matches[1]', 'top');
}
add_action('init', 'wpwp_add_rewrite_rules_no_slash');

После добавления новых правил нужно обновить постоянные ссылки в админке или вызвать flush_rewrite_rules() один раз программно.

Использование плагинов для управления URL и слэшами

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

  • Remove Trailing Slash — простой и эффективный плагин для удаления слэшей из URL.
  • Clearfy Pro — многофункциональный плагин оптимизации, в том числе помогает управлять структурами URL и удалять лишние слэши.

Использование плагина облегчит задачу, но важно удостовериться, что на вашем сайте нет конфликтов с другими настройками и плагинами.

Проверка и тестирование URL без завершающего слэша

После внесения изменений обязательно проверьте, что все ссылки работают корректно, не возникает циклов редиректов и 404 ошибок. Рекомендуется:

  • Использовать инструменты разработчика в браузере для отслеживания HTTP-заголовков.
  • Проверять логи сервера на предмет ошибок.
  • Тестировать открытие страниц с и без слэша.

Также полезно проверить, как поисковые системы индексируют ваши страницы, чтобы избежать проблем с SEO.

Заключение

Удаление завершающего слэша в контекстных связях WordPress — задача, требующая аккуратного подхода и понимания работы системы пермалинков. С помощью приведенных примеров кода и рекомендаций вы сможете настроить URL под свои нужды, улучшить SEO и пользовательский опыт. Если вы ищете комплексное решение, обратите внимание на Clearfy Pro, который существенно упрощает управление подобными настройками.

Как сделать двойную авторизацию в WordPress
20.03.2026
Как создать собственный тип записей (Custom Post Type) в WordPress
19.02.2026
Как создать адаптивный блок в WordPress с помощью CSS и PHP
22.02.2026
Как отключить AJAX подгрузку в WooCommerce
15.02.2026
WooCommerce: как автоматически очищать корзину после успешной оплаты
08.05.2026