大家好,我是飞小优,网站建设中少不了添加锚链接跳转,这个针对站内的链接还好,假如是外链呢那又该如何处理?以下是笔者实践后的两种解决方案。
先说说优劣势
优势
- 提高用户对外部链接的警惕性。通过提示用户注意离开本网站以及前往目标网站的风险,可以减少用户误点击恶意链接的风险,降低被网络钓鱼和恶意软件攻击的风险。
- 增加网站可信度。许多恶意网站会试图将用户引导到其他网站,进行欺诈、仿冒和钓鱼。如果网站在外链跳转时进行提示,表明其关注用户安全,可以提高用户对该网站的信任度,增加用户的回访率、留存率。
缺点
- 可能影响用户体验。如果在每次外链跳转时都要显示提示框,可能会给用户带来额外的操作和等待时间,妨碍用户的浏览体验。
- 可能降低网站流量和转化率。外链跳转安全提示可能会使一些用户放弃离开本网站的行为,降低外链的点击率和转化率,从而影响网站的流量和营销效果。
如何实现
利用插件实现
先说说如何利用插件来实现,在网站插件中心安装WP外链跳转插件,密码:1234
输入密码即可下载
受保护:外链跳转插件
后台配置添加域名白名单
前端效果
在网页中查看效果如下:
插件也有一个小问题,就是暴露链接地址,还一个就是在针对文章内链锚文本设置时也会强制出现,这个需要插件作者修复,不过整体上还是可以用的。
自定义代码实现
除了上述第一种方案,笔者使用自定义代码方式进行封装,在根目录新建go.php
文件,将下方代码copy,如下:
1.新建go.php
文件
<?php
$t_url = preg_replace('/^url=(.*)$/i','$1',$_SERVER["QUERY_STRING"]);
if(!empty($t_url)) {
preg_match('/(http|https):\/\//',$t_url,$matches);
if($matches){
$url=$t_url;
$title='页面正在安全跳转中,请稍候';
} else {
preg_match('/\./i',$t_url,$matche);
if($matche){
$url='http://'.$t_url;
$title='页面正在安全跳转中,请稍候';
} else {
$url='//defcon.cn/';
$title='参数错误,正在返回首页';
}
}
} else {
$title='参数缺失,正在返回首页';
$url='//defcon.cn/';
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="1;url='<?php echo $url;?>';">
</head>
<body>
跳转画面内容...
</body>
</html>
2.新添加代码到functions.php
文件中
在主题文件functions.php
中添加代码片段:
add_filter('the_content','the_content_nofollow',999);
function the_content_nofollow($content)
{
preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
if($matches){
foreach($matches[2] as $val){
if(strpos($val,'://')!==false && strpos($val,home_url())===false && !preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)){
$content=str_replace("href=\"$val\"", "href=\"".home_url()."/go.php?url=$val\" ",$content);
}
}
}
return $content;
}
当然还有css样式文件,这个根据自身需求自定义。
3.前端展示效果
整个还是比较简约好看的。最后别忘记添加Disallow: /go.php?url=
目的是让搜索引擎禁止抓取该页面,但是无法阻止用户查看。
写在最后
以上就是关于wordpress网站如何添加插入外链跳转安全提示功能效果,赶快去试试吧!