Кто хочет виртуальное теплое шоколадное печенье?
Я ищу функцию WordPress PHP, чтобы открыть все исходящие ссылки в новой вкладке.
Я нашел несколько функциональных решений, похожих на приведенное ниже, но они работают только для постов / страниц, а не для элементов, жестко запрограммированных в теме (например, кнопок социальных сетей):
/* OPEN ALL OUTBOUND LINKS IN NEW TAB */
function autoblank($text) {
$return = str_replace('href=', 'target="_blank" href=', $text);
$return = str_replace('target="_blank"href="http://csihealth.lenadev.com',
'href="http://csihealth.lenadev.com', $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');
Есть ли способ изменить это, чтобы он работал для всех исходящих ссылок? Не только сообщения / страницы?
Вы можете сделать это с помощью jQuery:
$(function() {
$( 'a[href^="//"],a[href^="http"]' )
.not( '[href*="' + window.location.hostname + '"]' )
.attr('target', '_blank');
});
При этом будет найдена любая ссылка, которая не является относительной (т. Е. Любая, которая может быть исходящей), затем удалены те, которые на самом деле указывают на ваш собственный сайт, и для целевых оставленных целей будет установлено пустое значение.
Других решений пока нет …