Как создать короткую ссылку в WordPress: полное техническое руководство
Короткие ссылки WordPress — это сокращённые URL-адреса, которые перенаправляют на определённую запись, страницу или пользовательский тип записи на вашем сайте. Они имеют формат https://yourdomain.com/?p=POST_ID и генерируются непосредственно WordPress с использованием встроенной системы перезаписи постоянных ссылок — без необходимости во внешних сервисах.
В этом руководстве описаны все методы создания, настройки и отслеживания коротких ссылок WordPress, включая стандартные рабочие процессы редактора, команды WP-CLI, решения на основе плагинов и поведение перенаправлений на уровне сервера. Независимо от того, используете ли вы экономичную среду общего хостинга или полностью управляемый VPS Хостинг, описанные ниже методы применимы напрямую.
Что такое короткие ссылки WordPress и как они работают
WordPress генерирует короткую ссылку для каждого материала в момент его сохранения в виде черновика или публикации. Короткая ссылка формируется из параметра строки запроса ?p=, за которым следует внутренний идентификатор записи в базе данных. Этот идентификатор последовательно присваивается таблицей wp_posts в MySQL или MariaDB и никогда не изменяется, даже если впоследствии вы измените ярлык записи или структуру постоянных ссылок.
Когда посетитель переходит по короткой ссылке, загружается начальный файл index.php WordPress, движок перезаписи анализирует строку запроса, и запрос внутренне перенаправляется на канонический постоянный адрес с использованием HTTP-ответа 301 Moved Permanently. Это означает, что короткие ссылки безопасны для SEO — поисковые системы следуют перенаправлению 301 и передают весь ссылочный вес каноническому URL.
Ключевые технические факты:
- Короткие ссылки разрешаются полностью на уровне приложения PHP/WordPress, а не на уровне веб-сервера.
- Параметр
?p=работает независимо от настройки структуры постоянных ссылок. - Изменение ярлыка записи не нарушает работу её короткой ссылки.
- Удаление и повторное создание записи присваивает новый идентификатор, что делает старую короткую ссылку недействительной.
Метод 1: Создание короткой ссылки в классическом редакторе
Классический редактор предоставляет специальную кнопку Получить короткую ссылку непосредственно в блоке публикации, расположенном над областью редактора записи.
Пошаговая инструкция:
- Откройте или создайте запись в классическом редакторе.
- Сохраните запись как черновик или опубликуйте её — короткая ссылка не может быть создана для несохранённого материала, поскольку идентификатор записи ещё не существует.
- Нажмите Получить короткую ссылку в блоке публикации. В модальном диалоге отобразится URL короткой ссылки.
- Скопируйте URL из поля диалога.
Если кнопка Получить короткую ссылку не отображается, возможно, она была скрыта через Настройки экрана. Нажмите вкладку Настройки экрана в правом верхнем углу экрана редактора и убедитесь, что отмечен параметр Ярлык или связанный с короткой ссылкой параметр. Некоторые темы и плагины также удаляют этот элемент интерфейса через remove_action('admin_head', 'wp_shortlink_header') или фильтр pre_get_shortlink, возвращающий пустую строку.
Метод 2: Создание короткой ссылки в блочном редакторе Gutenberg
Редактор Gutenberg убрал специальную кнопку короткой ссылки из стандартного интерфейса. Однако короткая ссылка по-прежнему существует и доступна двумя способами.
Способ A — Ручное формирование из идентификатора записи:
- Откройте запись в редакторе Gutenberg.
- Посмотрите на адресную строку браузера. URL будет содержать
post=XXXX, гдеXXXX— числовой идентификатор записи. - Сформируйте короткую ссылку вручную:
https://yourdomain.com/?p=XXXXЗамените XXXX на фактический идентификатор записи.
Способ B — Боковая панель настроек записи:
- Откройте запись в Gutenberg.
- На правой панели настроек Запись разверните раздел Постоянная ссылка.
- Идентификатор записи виден в URL редактора. В некоторых конфигурациях короткая ссылка также отображается на панели Сводка, если активен совместимый плагин.
Способ C — Восстановление кнопки короткой ссылки с помощью фрагмента кода:
Если вы хотите вернуть кнопку короткой ссылки в Gutenberg, добавьте следующий код в файл functions.php вашей темы или в плагин для конкретного сайта:
add_filter( 'get_shortlink', function( $shortlink, $id, $context, $allow_slugs ) {
return home_url( '/?p=' . $id );
}, 10, 4 );Этот фильтр гарантирует, что wp_get_shortlink() всегда возвращает значение, что повторно включает отображение короткой ссылки в совместимых компонентах интерфейса.
Метод 3: Создание коротких ссылок через WP-CLI
Для администраторов, управляющих WordPress из командной строки — особенно на VPS с cPanel или выделенном Dedicated Server — WP-CLI предоставляет прямой способ получения коротких ссылок без обращения к панели управления.
Получение короткой ссылки для конкретной записи по идентификатору:
wp post get 42 --field=url --path=/var/www/htmlСписок всех опубликованных записей с их идентификаторами и короткими ссылками:
wp post list --post_status=publish --fields=ID,post_title,post_name --format=tableПолучив идентификатор, короткая ссылка будет просто https://yourdomain.com/?p=ID. Вы также можете вызвать функцию WordPress напрямую через WP-CLI eval:
wp eval 'echo wp_get_shortlink(42);'Это выводит строку короткой ссылки именно в том виде, в каком WordPress её отдаёт, с учётом всех активных фильтров.
Метод 4: Короткие ссылки на основе плагинов с пользовательскими ярлыками и отслеживанием
Нативные короткие ссылки WordPress используют формат ?p=ID, который функционален, но не запоминается и не поддаётся брендированию. Плагины значительно расширяют эту возможность.
Pretty Links
Pretty Links — наиболее широко используемый плагин коротких ссылок в экосистеме WordPress. Он хранит пользовательские перенаправления в специальной таблице базы данных (wp_pretty_link и wp_pretty_link_clicks) и предоставляет отслеживание кликов, данные геолокации и внедрение UTM-параметров.
Рабочий процесс настройки:
- Установите и активируйте Pretty Links из репозитория плагинов WordPress.
- Перейдите в Pretty Links > Добавить новую ссылку.
- Введите целевой URL (канонический постоянный адрес вашей записи).
- Задайте пользовательский ярлык, например
go/my-post. - Выберите тип перенаправления:
301для постоянного,302для временного или307для временного с сохранением метода. - Сохраните. Короткая ссылка примет вид
https://yourdomain.com/go/my-post.
Техническое примечание: Перезаписи Pretty Links обрабатываются на уровне приложения WordPress через add_rewrite_rule(), а не на уровне Apache или Nginx. Это означает, что каждое обращение по короткой ссылке требует полной загрузки WordPress. На сайтах с высокой посещаемостью это может добавить 50–200 мс задержки на каждое перенаправление по сравнению с RewriteRule на уровне сервера. Если производительность перенаправлений критична, рассмотрите возможность переноса высоконагруженных ссылок на директивы Nginx map или специализированный микросервис перенаправлений.
ThirstyAffiliates
Для аффилиат-маркетологов ThirstyAffiliates предоставляет короткие ссылки с маскировкой кликов, автоматической привязкой ключевых слов и правилами перенаправления на основе геолокации. Ссылки хранятся в пользовательских типах записей (thirstylink), а не в отдельной таблице, что обеспечивает совместимость со стандартными рабочими процессами резервного копирования и миграции WordPress.
Плагин Redirection
Плагин Redirection управляет как короткими ссылками, так и общими перенаправлениями 301/302 из единого интерфейса. Он также фиксирует ошибки 404 и предлагает цели перенаправления, что особенно ценно при миграции сайтов.
Сравнение: методы создания коротких ссылок WordPress
| Метод | Пользовательский ярлык | Отслеживание кликов | Требует плагин | Влияние на производительность | Лучший вариант использования |
|---|
| — | — | — | — | — | — |
|---|
| Нативный `?p=ID` | Нет | Нет | Нет | Минимальное | Быстрый внутренний обмен |
|---|
| Кнопка классического редактора | Нет | Нет | Нет | Минимальное | Устаревший рабочий процесс |
|---|
| WP-CLI `wp eval` | Нет | Нет | Нет | Отсутствует (CLI) | Массовые операции, скриптинг |
|---|
| Pretty Links | Да | Да | Да | Умеренное (уровень PHP) | Брендированные ссылки, маркетинг |
|---|
| ThirstyAffiliates | Да | Да (расширенное) | Да | Умеренное (уровень PHP) | Управление партнёрскими ссылками |
|---|
| Плагин Redirection | Да | Базовое | Да | Умеренное (уровень PHP) | Миграция сайтов, обработка ошибок 404 |
|---|
| Директива Nginx `map` | Да | Нет (внешний инструмент) | Нет | Почти нулевое | Разгрузка высоконагруженных перенаправлений |
|---|
Соображения о производительности коротких ссылок на уровне сервера
На общем хостинге каждое перенаправление по короткой ссылке проходит через полный стек WordPress: инициализируется PHP-FPM или mod_php, загружается wp-config.php, открывается соединение с базой данных, и движок перезаписи разрешает запрос. При низкой и умеренной нагрузке это вполне приемлемо.
На сайтах с высокой посещаемостью или при использовании тысяч отслеживаемых коротких ссылок нагрузка на базу данных от записи кликов может стать узким местом. Практические меры по снижению нагрузки включают:
- Кэширование объектов: Установите Redis или Memcached и настройте
WP_CACHEвwp-config.php. Это кэширует поиск цели перенаправления и значительно сокращает количество обращений к базе данных. - Асинхронная запись кликов: Настройте Pretty Links для асинхронной записи кликов с использованием фонового процесса, а не блокирующего ответа перенаправления.
- Перенаправления на уровне CDN: Если вы используете Cloudflare, можно реализовать массовые правила перенаправления на уровне граничного узла, полностью минуя WordPress для высоконагруженных ссылок.
- Блоки map в Nginx: Для сред с администрированием сервера определите карты перенаправлений непосредственно в конфигурации Nginx:
map $request_uri $redirect_target {
/go/my-post https://yourdomain.com/full-canonical-url/;
/go/another https://yourdomain.com/another-post/;
}
server {
if ($redirect_target) {
return 301 $redirect_target;
}
}Этот подход обслуживает перенаправления за микросекунды без вызова PHP.
SSL, безопасность и целостность коротких ссылок
Короткие ссылки, обслуживаемые по HTTP и перенаправляющие на цели HTTPS, технически работоспособны, но подвергают пользователей потенциальному риску в окне перехода. Всегда убеждайтесь, что на вашем сайте WordPress установлен действующий SSL-сертификат, чтобы короткие ссылки с самого начала обслуживались через https://. Короткая ссылка со смешанным протоколом (http://yourdomain.com/?p=42, перенаправляющая на https://yourdomain.com/post-slug/) добавляет лишний шаг перенаправления и в некоторых конфигурациях может вызывать предупреждения безопасности браузера.
Если вы используете WordPress на инфраструктуре AlexHost, сочетание вашего сайта с правильно выданным SSL-сертификатом полностью устраняет эту проблему и гарантирует, что все короткие ссылки разрешаются через единую защищённую цепочку перенаправлений 301.
Кроме того, конечные точки коротких ссылок могут использоваться в фишинговых кампаниях, поскольку пункт назначения скрыт. Если вы используете Pretty Links или аналогичный плагин, включите параметр noindex для страниц перенаправления и рассмотрите возможность добавления атрибута rel="nofollow" к коротким ссылкам, распространяемым внешним образом, чтобы предотвратить нежелательные пути обхода.
Программное получение идентификатора записи
При создании пользовательских интеграций — например, динамической генерации коротких ссылок в ответе REST API или шаблоне электронного письма — используйте нативную функцию WordPress:
$post_id = get_the_ID(); // Inside The Loop
$shortlink = wp_get_shortlink( $post_id );
echo esc_url( $shortlink );Вне цикла The Loop передайте идентификатор записи явно:
$shortlink = wp_get_shortlink( 42 );Функция wp_get_shortlink() применяет фильтр get_shortlink, что означает автоматический учёт любого активного плагина, изменяющего поведение коротких ссылок. Именно поэтому правильнее использовать эту функцию, а не вручную конкатенировать home_url('/?p=') с идентификатором.
Матрица принятия решений: выбор подходящего метода коротких ссылок
Используйте эту матрицу для выбора подходящего метода в зависимости от ваших операционных требований:
Используйте нативные короткие ссылки ?p=ID когда:
- Вам нужно быстрое решение без настройки для внутреннего обмена или тестирования.
- Вас не беспокоят брендированные URL или аналитика кликов.
- Вы используете план Shared Web Hosting с ограниченными ресурсами и хотите избежать накладных расходов плагинов.
Используйте Pretty Links или ThirstyAffiliates когда:
- Вам нужны брендированные, удобочитаемые короткие ярлыки.
- Требуется отслеживание кликов, UTM-параметры или атрибуция конверсий.
- Вы ведёте контент-маркетинговый проект или партнёрский сайт.
Используйте директивы map в Nginx или правила перенаправления Cloudflare когда:
- Объём перенаправлений превышает десятки тысяч обращений в день.
- Вам необходима задержка перенаправления менее миллисекунды без накладных расходов PHP.
- Вы управляете инфраструктурой непосредственно на Dedicated Server или высокопроизводительном VPS.
Используйте WP-CLI когда:
- Вы выполняете скриптинг массовых операций с записями или миграций.
- Вам нужно программно получать короткие ссылки без сеанса браузера.
Ключевые технические выводы
- Каждая запись WordPress имеет постоянную короткую ссылку по адресу
/?p=POST_IDс момента первого сохранения; этот идентификатор никогда не изменяется, если только запись не удалена и не создана заново. - Редактор Gutenberg убрал кнопку интерфейса коротких ссылок, но не удалил саму функциональность — функция
wp_get_shortlink()и параметр?p=остаются полностью работоспособными. - Короткие ссылки на основе плагинов (Pretty Links, ThirstyAffiliates) работают на уровне приложения PHP; для сценариев с высокой нагрузкой перенесите перенаправления на Nginx или правило граничного узла CDN.
- Всегда обслуживайте короткие ссылки через HTTPS, чтобы избежать многоступенчатых цепочек перенаправлений и потенциальных предупреждений безопасности.
- Используйте
wp_get_shortlink()в пользовательском коде вместо ручного формирования URL, чтобы активные фильтры плагинов учитывались. - Асинхронная запись кликов и кэширование объектов Redis — две наиболее эффективные оптимизации для сайтов с интенсивным трафиком коротких ссылок.
- Периодически проверяйте рост таблицы базы данных плагина коротких ссылок —
wp_pretty_link_clicksможет накапливать миллионы строк на активных сайтах, снижая производительность запросов при отсутствии надлежащей индексации.
Часто задаваемые вопросы
Нарушает ли изменение ярлыка постоянной ссылки записи работу её короткой ссылки?
Нет. Короткая ссылка привязана к идентификатору записи в базе данных, а не к её ярлыку. Изменение ярлыка обновляет канонический URL, но короткая ссылка ?p=ID продолжает корректно разрешаться через перенаправление 301 на новый канонический постоянный адрес.
Почему в моём редакторе WordPress отсутствует кнопка «Получить короткую ссылку»?
В Gutenberg кнопка была удалена из стандартного интерфейса. В классическом редакторе она также может быть скрыта через Настройки экрана или подавлена плагином с помощью фильтра pre_get_shortlink, возвращающего пустую строку. Используйте wp eval 'echo wp_get_shortlink(POST_ID);' через WP-CLI для получения короткой ссылки независимо от состояния интерфейса.
Влияют ли короткие ссылки WordPress на SEO?
Нативные короткие ссылки используют HTTP-перенаправления 301 на канонический URL, поэтому поисковые системы следуют перенаправлению и передают все сигналы ранжирования каноническому постоянному адресу. Сами короткие ссылки не индексируются. Убедитесь, что ваш плагин коротких ссылок случайно не устанавливает для страниц перенаправления 200 OK с тонким контентом, что может создать проблемы с индексацией.
В чём разница между короткой ссылкой WordPress и сервисом сокращения URL, таким как Bitly?
Короткие ссылки WordPress размещаются на вашем собственном сервере и разрешаются на вашем домене, сохраняя доверие к бренду и удерживая аналитику в вашей инфраструктуре. Сторонние сервисы сокращения URL, такие как Bitly, направляют трафик через внешний домен, создавая зависимость от стороннего сервиса и потенциально скрывая ваш бренд в распространяемых ссылках.
Можно ли использовать короткие ссылки в ответах REST API WordPress?
Да. Вызовите wp_get_shortlink( $post->ID ) в обратном вызове пользовательской конечной точки REST API или используйте фильтр rest_prepare_post для добавления поля короткой ссылки к стандартным ответам записей. Это полезно для безголовых установок WordPress, где клиентское приложение нуждается в коротком URL для публикации без его формирования на стороне клиента.
