mojwp.ru
Назад

Как открывать все внешние ссылки в новом окне

Опубликовано: 22.07.2014
37
1923

как открыть внешнюю ссылку в новом окнеВставим небольшой кусок кода, который позволит открывать все внешние ссылки сайта на WordPress в новом окне.

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

Статья написана "по мотивам" твита от Сергея Шелвина.

Твит получил много откликов (комментариев) о целесообразности подобного. Я за target="_blank" на внешних ссылках.

Используем хак

Если вы тоже придерживаетесь мнения, что внешние ссылки должны открываться в новом окне (вкладке) браузера, то на сайтах под WordPress в папке с шаблоном ищем файл functions.php и сразу после знака <?php и с новой строки вставляем следующий код:

// внешние ссылки в новом окне
function autoblank($text) {
$return = str_replace('href=', 'target="_blank" href=', $text);
$return = str_replace('target="_blank" href="https://mojwp.ru', 'href="https://mojwp.ru', $return);
$return = str_replace('target="_blank" href="/', 'href="/', $return);
$return = str_replace('target="_blank" href="#', 'href="#', $return);
$return = str_replace(' target = "_blank">', '>', $return);
return $return;
}
add_filter('the_content', 'autoblank');
add_filter('comment_text', 'autoblank');

В коде дважды прописан мой домен. Меняете его на свой. Это для того, чтобы ссылки на ваш сайт открывались в текущем окне.

Все. Не забывайте делать резервные копии файлов с которыми работаете. Я не несу ответственности за ваши действия.

Автор:
Виталий
Поделиться
Похожие записи
Черкани пару строк
  • Андрей
    Опубликовано: 22.07.2014 Ответить на сообщение

    Вчитываюсь в статью и не могу догнать Виталий, на сколько я припоминаю Вы уже нечто подобное публиковали "Открываем все ссылки в теле статьи в новом окне" и код там меньше, в чем разница между этими двумя хаками?

    • Виталий
      Опубликовано: 22.07.2014 Ответить на сообщение

      Тот хак на все ссылки действовал. А представленный в данной статье только на внешние, т.к. указываем домен для игнора.

  • Сергей Шелвин
    Опубликовано: 22.07.2014 Ответить на сообщение

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

  • Вадим
    Опубликовано: 23.07.2014 Ответить на сообщение

    Здравствуйте, Виталий!
    У меня при добавлении данного хака в функции перестал корректно работать скрипт лайтбокса. когда кликаем на изображение, появляется белый лайтбокс с вращающимся прогесс-баром и все! 🙂
    Удалял кэш в плагине кэширования и в браузерах. проверял на разных компьютерах. Может это только у меня так, не знаю, но на всякий случай решил написать.
    Скрипт устанавливал тоже по Вашей инструкциию. За что хотел еще раз поблагодарить 🙂

    • Виталий
      Опубликовано: 24.07.2014 Ответить на сообщение

      Сходу не подскажу в чем проблема. Нужно видеть.
      Обе эти вещи сейчас установлены на читаемом вами блоге и все работает отлично.

  • Максим
    Опубликовано: 08.08.2014 Ответить на сообщение

    Супер Виталий, давно искал подобное решение. Спасибо.

  • Евгений
    Опубликовано: 06.02.2015 Ответить на сообщение

    закинул в functions.php, свой сайт вписал и нет, ничего не происходит.

  • Максим
    Опубликовано: 15.03.2015 Ответить на сообщение

    Прописал данный код в своем functions.php не работает, ссылки не открываются в новом окне.

    • Геннадий
      Опубликовано: 21.07.2015 Ответить на сообщение

      А у мееня все отлично работает и с первого раза ) Повезло, наверное )

  • Владимир
    Опубликовано: 08.05.2015 Ответить на сообщение

    Круто! Поставил на двух своих блогах, работает чётко.
    На третьем файл functions.php зашифрован и при любом изменении сайт перестаёт работать =(( никогда такого не встречали?

    выглядит файл так:
    4+oV53q12xy2ie+mp+2UdDMz3D65jqgbdDcxkFyC/GffIYfVEnsIMeVpg3iC//NknOAMCVkIxQja
    8HPEVasAOVnNdpJ95GdTCCg/Wnw9bLLdGjP9ZwTKWOnwBXCKNQnCioPnE9kpDkO15/PA8ePrJDuI
    dckcjFAf0omhIw8Am5cszQ8bQItuas8rw4vATwwfjIu1eiDHj55SinglkaekeQ1dFggd9qLBMjAG
    fxopfo7WhZD0N2IS5mhr4yCKIrDqLsa3ITgY/t/nOGHDB3JO7c2sVwkJbKOqhnStN2aHUKd/agUf
    ns6OBGHyR/7BAyDTFoh5r3r03s2l8HhIn1qMuPQqo1OObZhJLhjelgHJqPXo38MTNz7P1YNYO4at
    4MkeyG1Xk0Z1rEY0JKAWfYZFizGNtY2Pgnlx6tRcoSAAHA+Gy/lSowPr5kdc8x70cGgqY49dSkvx
    WiM/wJBC/huJ2TqIgSlFj4X0xl/SBg0d0BqgUWeS84hD+tjObOOksYzfsGQoLOvk7QLIyU+1Pexs
    pvRPGU49r5JRYiLXNuRYUX2diuxp3KMXts+hlhO7GvAWO2Mu2o6K4+fndqU1vcn96m4/TxmGG5S0
    yLdAKBvcXw6ES2A+I2CZOBDgxeyWA/VnJOJrYWT3cK67hcAHNzuVyFnuvwa630H0T0xU72gM1ScJ
    vkMOFtXe3mPYnQ4XjTq+04G9TdIBgKa52RwFWKl0o1aDwXSzDlQszEBUwkZbT0jIymFiTEnWXTsQ

  • БлогБегиннер
    Опубликовано: 13.06.2015 Ответить на сообщение

    При использовании target="_blank" страница перестаёт быть валидной. Я бы рекомендовал вместо target="_blank" использовать конструкцию onclick="return !window.open(this.href)"!window.open(this.href)"
    Тогда код получается валидным

  • БлогБегиннер
    Опубликовано: 13.06.2015 Ответить на сообщение

    Сорри, неправильно вставил код. Вот правильная строка:
    onclick="return !window.open(this.href)"

  • Геннадий
    Опубликовано: 21.07.2015 Ответить на сообщение

    Уважаемый Виталик!

    У меня ваши коды ОТЛИЧНО РАБОТАЮТ, Спасибо! Вышлю авторам темы как вариант и для примениния в целом.
    Вот пишут о валидности и предлагают исправить код:
    onclick="return !window.open(this.href)"

    Прошу вас оценить и предложить ВАШ ВАРИАНТ ПОЛНОГО КОДА С УЧЕТОМ ЭТОГО ПРЕДЛОЖЕНИЯ.
    Спасибо!

    🙂

  • Ира
    Опубликовано: 23.07.2015 Ответить на сообщение

    Здраствуйте подскажите пожайлуста как сделать чтобы ссылки открывались в новой вкладке только в статьях?!

    • Виталий
      Опубликовано: 23.07.2015 Ответить на сообщение

      Добрый. Если только вручную ссылкам в статье задавать target

      • Ира
        Опубликовано: 24.07.2015 Ответить на сообщение

        У меня в записях нужно сделать чтоб "похожие статьи" отрывались в новом окне где это можно в коде поменять или что то вставить?

        • Виталий
          Опубликовано: 24.07.2015 Ответить на сообщение

          Все зависит каким образом у вас выводятся похожие записи. Есть несколько плагинов, а есть возможность выводить код.
          Смотрите по ситуации и вставьте target="_blank" в тег ссылки

  • Ирина
    Опубликовано: 21.09.2015 Ответить на сообщение

    Виталий, подскажите, как этот код работает с якорными ссылками? У меня есть статья, в которой установлены якоря и теперь (после установки кода) при переходе по якорю страница не прокручивается к нужному месту, а открывается новая вкладка с этой статьей.

  • Den
    Опубликовано: 26.09.2015 Ответить на сообщение

    Большое человеческое спасибо. Все сразу заработало без всякого гемороя.

  • Woolf
    Опубликовано: 09.11.2015 Ответить на сообщение

    Не заработало =(

  • Владимир
    Опубликовано: 16.11.2015 Ответить на сообщение

    Спасибо большое, заработало 🙂

  • Илья
    Опубликовано: 14.07.2016 Ответить на сообщение

    То, что надо! Удивился, но удобный способ открывать ссылки в новой вкладке удалось найти далеко не сразу. А здесь все просто и быстро, и без новых плагинов. Спасибо!

  • Илья
    Опубликовано: 17.07.2016 Ответить на сообщение

    не работает, увы. внешние ссылки с главной страницы всё равно открываются в текущем окне.

    • Виталий
      Опубликовано: 18.07.2016 Ответить на сообщение

      Это решение для тела записей и комментариев. Все работает

  • ник
    Опубликовано: 24.10.2016 Ответить на сообщение

    спасибо все работает испробовал именно то что мне надо

  • Артем
    Опубликовано: 13.12.2016 Ответить на сообщение

    Спасибо большое, все работает даже без изменения Вашего домена на домен моего сайта в коде )) не заметил сразу

  • Дина
    Опубликовано: 25.01.2017 Ответить на сообщение

    Спасибо! Круто! Всё работает!

  • Ёж
    Опубликовано: 03.02.2017 Ответить на сообщение

    Спасибо!!!
    Подскажите, плз, а как сделать открытие ссылки на свой сайт из админки вордпресс в новом окне?
    Опция "Перейти на сайт".

  • Мика
    Опубликовано: 09.04.2017 Ответить на сообщение

    Спасибо. Помогло. А есть темы на то, как сделать внешние ссылки нофоллу?

  • Ирина
    Опубликовано: 04.05.2017 Ответить на сообщение

    Спасибо Вам огромное!!!!!!!!!!!!Очень помогли!

  • Олег
    Опубликовано: 02.01.2018 Ответить на сообщение

    Виталий, у меня обратное желание - сделать так, чтоб ссылки блога открывались в том же окне и не создавали, извиняюсь, геморроя посетителю. Внешние ладно, пусть открываются, а вот внутренние - это косяк. Как и где закрыть такое деяние? Знаю, что шаблоны разные, но наведите на мысль - где искать и убирать? Пересмотрел все возможные места - найти не могу. Если поможет, то шаблон Basic
    С уважением

    • Виталий
      Опубликовано: 08.01.2018 Ответить на сообщение

      В самих ссылках уберите параметр target="_blank"
      Либо может быть прописано автоматом в functions.php

  • Ann
    Опубликовано: 01.02.2018 Ответить на сообщение

    Как открыть ссылку в новом окне в Гугл Докс?

  • Ann
    Опубликовано: 06.02.2018 Ответить на сообщение

    В интегрированном на сайт Гугл Докс не открывается ссылка из него(Гугл Докс) в новой вкладке. Появляется "Redirecting you to ..." и ничего не происходит. В прописан sandbox="allow-popups-to-escape-sandbox".
    Как прописать чтобы ссылки из интегрированного на сайт Гугл Докс открывалась в новой вкладке?
    И может ли быть такое, что атрибут sandbox="allow-popups" придуман, а браузеры его еще не поддерживают?

  • Александр
    Опубликовано: 03.06.2018 Ответить на сообщение

    А подскажите, пожалуйста, как заставить установленную на сайте рекламу от Google открываться в новой вкладке? Данный хак почему-то именно с рекламой гугла не дружит, а вот обычные внешние ссылки в тексте открывает в новой вкладке.

    • Виталий
      Опубликовано: 04.06.2018 Ответить на сообщение

      Никак. Это реклама Google и подгружается с их сервера.

  • Андрей
    Опубликовано: 22.07.2019 Ответить на сообщение

    Есть проблемка, дело в том что ссылки на картинки тоже добавят этот тег если у вас стоит какой нибудь плагин на открытие картинок в модальном окне то это вызовет проблемму. По хорошему нужно сделать список исключения по расширению Jpeg png gif и тд. И еще не понятно как код ведет себя когда тег уже присутствует и например в строке еще классы, не удалит ли классы.

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.