Содержание

Как сделать промежуточную страницу перехода на внешний сайт в WordPress через JavaScript

В этой статье рассматривается задача безопасной и удобной организации перехода по внешним ссылкам на сайте WordPress, при которой пользователи сначала попадают на промежуточную страницу с предупреждением и только после подтверждения переходят на внешний ресурс. Для решения используется JavaScript и sessionStorage — ссылка передаётся между страницами без отображения ее в URL, что предотвращает создание множества параметрических URL и улучшает SEO сайта. Приведен полный пример такого решения с инструкциями по интеграции. — Dmytro Yakovenko 2025/09/19 13:21

Полный пример кода для сайта на Wordpress с использованием sessionStorage, чтобы при клике на ссылку происходил переход на страницу redirect без параметров, а на странице redirect динамически выводились предупреждение и кликабельная ссылка в блоке blockquote.

Как скрипт работает

1. JavaScript для вставки перед </body>

JavaScript для вставки перед </body>, через плагин Clearfy Pro или аналогичный.

<script>
document.addEventListener('click', function(event) {
  const link = event.target.closest('a');
  if (!link) return;
 
  if (link.closest('div.jet-listing.jet-listing-dynamic-link')) {
    const href = link.href;
    if (href.includes('/goto/')) {
      return; // исключаем ссылки с /goto/
    }
    if (href && href.startsWith('http')) {
      event.preventDefault();
      sessionStorage.setItem('redirect_url', href);
      window.location.href = '/redirect/';
    }
  }
});
</script>

2. JavaScript для страницы /redirect/

Создаем в Wordpress страницу redirect. JavaScript для страницы /redirect/ лучше вставить в шаблон страницы redirect или через плагин Шорткодер (Shortcoder), чтобы этот код загружался только для страницы redirect.

<p>Сейчас вы переходите на внешний ресурс, который не контролируется нами.</p>
<blockquote></blockquote>
<script>
document.addEventListener('DOMContentLoaded', function() {
  const url = sessionStorage.getItem('redirect_url');
  const blockquote = document.querySelector('blockquote');
 
  if (url && blockquote) {
    blockquote.innerHTML = `Для перехода нажмите здесь <a href="${url}" target="_blank" rel="noopener noreferrer nofollow">${url}</a>`;
  } else if (blockquote) {
    blockquote.textContent = 'Ссылка для перехода не найдена.';
  }
});
</script>

3. HTML шаблон страницы redirect

В шаблоне страницы /redirect/ в HTML должен быть блок:

<blockquote></blockquote>

Или любой другой элемент, где хотите показывать предупреждение с ссылкой. Как видно выше я этот бок добавил в шорткод пункта 2.

Заключение

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