效果如下:
实现功能:
1、自动给外站链接添加 target=”_blank” 新窗口打开标签;
2、自动给外站链接添加 rel=”nofollow” 属性;
3、打开外链时弹出提示窗口,确定后方能打开。
实现方法:
1、在header.php引入layer.js和layer.css,(此处可自行百度)
2、在functions.php主题函数文件内添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
//外部链接打开提示S function wb_other_url_tip_main() { function wb_other_url_tip($content) { $regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>"; if (preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) { if (!empty($matches)) { $srcUrl = get_option('siteurl'); for ($i = 0; $i < count($matches); $i++) { $tag = $matches[$i][0]; $tag2 = $matches[$i][0]; $url = $matches[$i][0]; $noFollow = ''; $pattern = '/target\s*=\s*"\s*_blank\s*"/'; preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE); if (count($match) < 1) { $noFollow .= ' target="_blank" '; } $pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/'; preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE); if (count($match) < 1) { $noFollow .= ' rel="nofollow" onclick="return onclickweblink(this)"'; } $pos = strpos($url, $srcUrl);if (preg_match('/(http:\/\/)|(https:\/\/)/i', $url) && $pos === false) { $tag = rtrim($tag, '>'); $tag .= $noFollow . '>'; $content = str_replace($tag2, $tag, $content); } } } } $content = str_replace(']]>', ']]>', $content); return $content; } if(!is_admin()) ob_start("wb_other_url_tip"); } add_action('init', 'wb_other_url_tip_main'); //外部链接打开提示E |
3、在JS 文件后面或者在主题的自定义JS 代码处添加如下javascript代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function onclickweblink(obj) { var link = obj.href; console.log(link); if (link != null && link != '') { layer.confirm('即将打开非本站链接!', { btn: ['确定', '取消'], //按钮 title: '提示信息' }, function(index) { window.open(link, "_blank"); layer.close(index); }); } return false; } |
PS: 如不想使用layer可以使用如下JS代码:
1 2 3 4 5 6 7 8 9 |
function onclickweblink(obj) { var link = obj.href; if (link != null && link != '') { if (confirm('您所访问的页面将跳转到第三方网站,可能会有安全风险,确定要继续吗?')) { window.open(link, "_blank"); } } return false; } |