Как изменить структуру ссылок в WordPress без плагинов

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

Что такое структура ссылок и зачем её менять

Структура ссылок — это шаблон, по которому формируются URL страниц, записей, категорий и других элементов сайта. По умолчанию WordPress использует структуру с параметрами вида ?p=123, что плохо сказывается на SEO и удобстве пользователей.

Изменение структуры ссылок позволяет сделать URL более читаемыми и релевантными, например, /blog/post-title/ вместо ?p=123. Это улучшает индексацию в поисковых системах и повышает кликабельность ссылок.

Иногда стандартных настроек в админке недостаточно, и требуется более гибкая настройка через код.

Как изменить структуру ссылок через админку WordPress

Для начала рассмотрим стандартный способ изменения структуры ссылок:

  1. Перейдите в админке WordPress: Настройки > Постоянные ссылки.
  2. Выберите один из стандартных вариантов или выберите «Произвольно» и введите свой шаблон, например, /blog/%postname%/.
  3. Нажмите «Сохранить изменения».

Однако этот метод не всегда позволяет реализовать сложные сценарии, например, разное форматирование URL для разных типов записей или таксономий.

Программное изменение структуры ссылок через хуки WordPress

Для более тонкой настройки можно использовать фильтры и хуки WordPress:

Изменение базового префикса для Custom Post Type

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

function wpcourse_register_custom_post_type() {
    register_post_type('product', [
        'labels' => [
            'name' => 'Товары',
            'singular_name' => 'Товар',
        ],
        'public' => true,
        'has_archive' => true,
        'rewrite' => ['slug' => 'catalog'], // изменим базовый префикс
    ]);
}
add_action('init', 'wpcourse_register_custom_post_type');

В этом примере адреса товаров будут иметь вид site.ru/catalog/product-name/.

Добавление пользовательского правила для таксономий

Допустим, нужно изменить URL категорий для записей. Можно добавить следующий код:

function wpcourse_custom_taxonomy_rewrite() {
    add_rewrite_rule('^topics/([^/]+)/?$', 'index.php?category_name=$matches[1]', 'top');
}
add_action('init', 'wpcourse_custom_taxonomy_rewrite');

Это создаст правило, при котором категории будут доступны по адресу site.ru/topics/category-name/.

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

После внесения изменений в правила перезапишите структуру ссылок, чтобы WordPress обновил правила .htaccess. Это можно сделать программно:

function wpcourse_flush_rewrite() {
    wpcourse_register_custom_post_type(); // повторно зарегистрировать CPT
    flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'wpcourse_flush_rewrite');
<

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

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

Чтобы реализовать структуру URL вида /blog/год/месяц/день/название-записи/, используйте следующий код:

function wpcourse_custom_permalink_structure() {
    global $wp_rewrite;
    $wp_rewrite->set_permalink_structure('/blog/%year%/%monthnum%/%day%/%postname%/');
    flush_rewrite_rules();
}
add_action('init', 'wpcourse_custom_permalink_structure');

Этот код задаст нужный формат постоянных ссылок для всех записей в блоге.

Как вручную изменить .htaccess для кастомных правил

Иногда требуется прописать правила перенаправления прямо в файл .htaccess. Пример для структуры с префиксом /blog/:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^blog/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/]+)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4 [L]
</IfModule>

Такой подход подходит, если сервер поддерживает mod_rewrite и вы хотите вручную контролировать перенаправления.

Использование плагина Clearfy PRO для управления ссылками

Хотя статья посвящена способам без плагинов, иногда удобнее использовать специализированные инструменты. Плагин Clearfy PRO позволяет гибко настраивать пермалинки, отключать ненужные параметры в URL и оптимизировать структуру без ручного кодинга.

Clearfy PRO поможет автоматизировать работу с постоянными ссылками и избежать ошибок в .htaccess.

Советы по отладке и проверке структуры ссылок

После изменения структуры ссылок обязательно проверьте, что все страницы корректно открываются, а старые URL перенаправляются на новые. Для отладки используйте инструменты браузера и плагины типа Redirection для настройки 301 редиректов.

Также полезно проверить сайт через Google Search Console на предмет ошибок индексации.

Итоги

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

Если же хочется сэкономить время или получить расширенный функционал, обратите внимание на Clearfy PRO.

Как удалить старые псевдоверсии постов в WordPress: эффективные методы и примеры
13.04.2026
Как создать автоматические отчёты в WordPress с помощью WPGPT
10.02.2026
Как удалить версии постов в WordPress для оптимизации базы данных
25.03.2026
Как создать и использовать автоматические корректоры грамматики в WordPress
29.03.2026
Как использовать хук WooCommerce 'woocommerce_order_status_changed' для автоматизации действий при смене статуса заказа
28.04.2026

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас