Как сделать, чтобы ссылки комментаторов открывались в новом окне?

26 февраля 2016 в 08:37
Комментариев: 31

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

Сегодня хочу рассказать про один очень важный элемент при настройке комментариев на своём блоге. Для чего нужно делать так, чтобы ссылка на сайт комментатора всегда открывалась в новом окне (вкладке)?

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

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

Вариант 1:


Реализовать эту функцию можно с помощью небольшого скрипта. Просто скопируйте этот код в файл footer.php перед закрывающим тегом </body>.

<!-- Открывать ссылки комментариев в новом окне -->
 <script type="text/javascript">
 function externalLinks() {
 var doc = document;
 if (!doc.getElementsByTagName) return;
 var links = doc.getElementsByTagName("a");
 for (var i=0; i<links.length; i++) {
 var link = links[i];
 if (link.getAttribute("href") && (link.getAttribute("rel") != null)
 && link.getAttribute("rel").indexOf("external") >= 0 ){
 link.target = "_blank";
 link.title = "Откроется в новом окне"
}
}
}
window.onload = externalLinks;
</script>
<!--/ Открывать ссылки комментариев в новом окне -->

Возможно, сразу же скрипт может не заработать, так как страницы кэшируются. Почистите кэш и попробуйте ещё раз.

Вариант 2:


В файле function.php добавить две функции.

1. Открывает ссылки на сайт комментаторов в новом окне.

add_filter( 'get_comment_author_link', 'wfm_add_author_target' );
function wfm_add_author_target($link){
return preg_replace("#&lt;a([^&gt;\#]+)&gt;(.+?)#", "&lt;a$1 target='_blank'&gt;$2", $link);
}

2. Открывает ссылки в самих комментариях в новом окне.

add_filter( 'comment_text', 'wfm_add_comment_target' );
function wfm_add_comment_target($comment){
return preg_replace("#&lt;a([^&gt;\#]+)&gt;(.+?)#", "&lt;a$1 target='_blank'&gt;$2", $comment);
}

С уважением, Василий Блинов.

1 звезда2 звезды3 звезды4 звезды5 звезд (1 голосов, средний: 5,00 из 5)
Загрузка...
Просмотров: 32
подпишись и начни получать лучшие статьи первым
Подписалось уже 699 человек
Комментариев к статье: 31
  • Александр
    05.02.2015 в 01:13

    Буквально две недели назад себе сделал, точно так же само.

  • Игорь
    15.02.2015 в 20:53

    Спасибо Василий, полезная фишка :)

  • Анна
    13.03.2015 в 04:26

    А я сделала это с помощью плагина) Очень удобно и симпатичней получилось, а главное просто :) Не люблю лишний раз лазить в код :)

    • Василий Блинов
      13.03.2015 в 13:37

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

    • Екатерина
      16.06.2015 в 09:09

      Я тоже не любитель влазить в коды, можно такого натворить, что придется все заново переделывать. С плагином легче.

  • Андрей
    26.03.2015 в 13:17

    Песня! две минуты делов! Спасибо друх! :)

    • Василий Блинов
      27.03.2015 в 18:57

      Не за что, Андрей :)

  • Андрей
    27.03.2015 в 19:38

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

  • Андрей
    09.04.2015 в 21:51

    Василий, тут это, такая фишка... обнаружил сегодня, что не работает твой код почему-то... снова ссылка открывается в этом же окне, это как может быть, не подскажешь?

    • Василий Блинов
      09.04.2015 в 21:59

      Андрей, у вас там несколько раз код вставлен, может из-за этого? Почистите и вставьте один раз. У меня все работает.

  • Андрей
    09.04.2015 в 22:05

    нет, не из-за этого... почистил

    • Василий Блинов
      09.04.2015 в 22:11

      Все равно вижу в коде двойную вставку)

  • Андрей
    09.04.2015 в 22:33

    скопировал свой футер

    где?

    • Василий Блинов
      09.04.2015 в 22:39

      Андрей, нажимая Ctrl-U я вижу в коде вставку 2 раза и открытый тег noindex внутри скрипта первой вставки.

  • Андрей
    09.04.2015 в 22:43

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

  • Андрей
    09.04.2015 в 22:50

    да, так было, F5 нажми, кэш обнови, я уже убрал верхнюю копию

    • Василий Блинов
      09.04.2015 в 22:57

      Я уже и ctrl+F5 нажал, и другой браузер открыл, и кэш почистил, все равно 2 кода :)

  • Андрей
    09.04.2015 в 23:09

    шайтан однако! :))

  • Наталья
    17.04.2015 в 22:55

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

    • Василий Блинов
      18.04.2015 в 12:49

      Отлично, Наталья. Рад, что помог. Я сам кучу способов перебрал чтобы этот код найти))

  • Евгений
    16.05.2015 в 19:42

    У меня второй вариант не заработал. Может ошибка в регулярном выражении. А Вы у себя пробовали?

  • Сергей
    03.06.2015 в 13:14

    Василий, подскажи, пожалуйста, первый вариант, он делает закрытые исходящие ссылки в комментариях или он просто открывает страницу в новом окне?

    Спасибо

    • Василий Блинов
      03.06.2015 в 13:27

      Сергей, код просто открывает в новом окне

      • Сергей
        03.06.2015 в 13:30

        А как сделать что бы еще закрывать исходящую ссылку, как у Вас на блоге?

      • Василий Блинов
        03.06.2015 в 16:56

        Через функцию urlspan закрыты все ссылки от индексации, инструкции можно в интернете найти...

      • Сергей
        03.06.2015 в 20:11

        Хорошо, спасибо, буду искать!

  • Артем
    09.07.2015 в 08:39

    Все просто и быстро! Сделал так как в статье описано. Полезный скрипт.

  • Александра
    29.08.2015 в 00:32

    Василий, спасибо большое, всё оказалось настолько просто:) На всё ушло меньше минуты! Дольше искала вас Василий!))

    • Василий Блинов
      30.08.2015 в 21:44

      Рад, что вы решили свой вопрос.

  • Сергей
    13.04.2016 в 23:16

    Спасибо :p Заработалоооо :-)

Оставить комментарий
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o: :smile1: :smile2: :smile3: :smile4: :smile5: :smile6: :smile7:
Прислать статью