Відкриваємо посилання коментаторів в новому вікні браузера
Сьогодні хочу розповісти про один дуже важливий елемент при налаштуванні коментарів на своєму блозі – для чого потрібно робити так, щоб посилання на сайт коментатора завжди відкривалися в новому вікні (вкладці)?
Стандартне налаштування 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(“#<a([^>#]+)>(.+?)#”, “<a$1 target=’_blank’>$2”, $link);
}
2. Відкриває посилання в коментарях в новому вікні.
add_filter( ‘comment_text’, ‘wfm_add_comment_target’ );
function wfm_add_comment_target($comment){
return preg_replace(“#<a([^>#]+)>(.+?)#”, “<a$1 target=’_blank’>$2”, $comment);
}