Как изменить URL текущей страницы в WordPress без перенаправления

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

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

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

  • Обновлять адрес страницы динамически, не перезагружая её;
  • Реализовывать одностраничные приложения (SPA) на базе WordPress;
  • Поддерживать ЧПУ (человеко-понятные урлы) для пользователей и поисковиков;
  • Изменять URL в зависимости от параметров или состояния страницы прямо на клиенте.

Однако стоит помнить, что изменить URL в браузере можно и с помощью JavaScript (history.pushState), но серверный WordPress не будет знать об этом изменении, что может привести к ошибкам при обновлении страницы. Поэтому правильное решение — сделать корректный парсинг и обработку URL на стороне WordPress.

Изменение URL страницы на сервере в WordPress

Чтобы изменить URL текущей страницы без перенаправления, нужно вмешаться в процесс разбора запроса WordPress (query vars) и изменить параметры запроса, а также перезаписать правила URL (rewrite rules). Это позволит WordPress «подхватить» новый адрес как текущий без редиректа.

Шаг 1. Добавляем собственное правило для URL

Один из способов — добавить новое правило для парсинга URL, которое будет обрабатывать кастомный адрес. Для этого используем хук wpsassist_add_rewrite_rule:

function wpassist_add_rewrite_rule() {
    add_rewrite_rule('^new-url-page/?$','index.php?pagename=old-url-page','top');
}
add_action('init', 'wpassist_add_rewrite_rule');

В данном примере запрос к https://site.ru/new-url-page будет обрабатываться как old-url-page без перенаправления. Чтобы правило заработало, нужно обновить постоянные ссылки (Settings > Permalinks или программно).

Шаг 2. Перезаписываем параметры запроса

Иногда нужно более гибко изменять URL и параметры. Для этого используем фильтр request:

function wpassist_modify_request($query_vars) {
    if (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/new-url-page') !== false) {
        $query_vars['pagename'] = 'old-url-page';
    }
    return $query_vars;
}
add_filter('request', 'wpassist_modify_request');

Так WordPress загрузит содержимое страницы old-url-page, когда посетитель зайдёт на /new-url-page. При этом в адресной строке останется /new-url-page, и перенаправления не будет.

Шаг 3. Обновление правил пермалинков

После добавления новых правил важно обновить rewrite правила. Можно сделать это вручную в админке, либо программно так:

function wpassist_flush_rewrite_rules() {
    wpassist_add_rewrite_rule();
    flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'wpassist_flush_rewrite_rules');
<

Эта функция обновит правила при активации плагина или темы с вашим кодом.

Изменение URL на клиенте с помощью JavaScript

Если задача — изменить URL динамически без перезагрузки, то можно использовать JavaScript функцию history.pushState или history.replaceState. Это полезно, например, для AJAX-загрузки контента с изменением адреса.

document.addEventListener('DOMContentLoaded', function() {
    if(window.history && window.history.pushState) {
        window.history.pushState(null, null, '/new-url-page');
    }
});

Этот код изменит URL в адресной строке, не перезагружая страницу. Но чтобы при обновлении страницы браузером открывалась правильная страница, сервер должен поддерживать такой URL (см. предыдущие шаги).

Примеры полезных плагинов для работы с URL в WordPress

Некоторые плагины облегчают работу с изменением URL и управлением пермалинками:

  • Clearfy Pro — оптимизация и управление ссылками, включая удаление параметров и настройку ЧПУ.
  • ABC Pagination — улучшенная пагинация с возможностью кастомизации URL.
  • WPGPT — для создания динамического контента с изменением URL и SEO-оптимизацией.

Все эти плагины доступны на WPSHOP.RU и могут значительно упростить работу с URL.

Заключение по изменению URL в WordPress без редиректа

Изменение URL текущей страницы без перенаправления — задача, требующая понимания работы rewrite правил и обработки запросов в WordPress. Используя добавление кастомных rewrite правил и фильтры запроса, можно добиться того, чтобы сервер отдавал нужный контент при новом адресе без редиректа. Для динамического изменения URL на клиенте — используйте history API браузера, но не забывайте о поддержке на сервере.

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

Как сделать собственную авторизацию в WordPress с помощью shortcode
21.01.2026
Как создать собственный тип пользователя в WordPress с применением хуков
13.01.2026
Как добавить автоподпись в WordPress с помощью PHP
26.11.2025
WooCommerce: автоматическое изменение стоимости товаров по расписанию
02.06.2026
Как установить и настроить Redis кэш в WordPress для ускорения сайта
30.03.2026