代码实现wordpress外链go跳转并通过base64加密

445次阅读
2条评论

在 wordpress 文章或者评论中经常会插入外链,低质量的外链除了会分走流量外,如果数量过多还非常容易被搜索引擎k站。那要怎么避免这个问题呢?通过代码自动检测全站链接,如果是外链,则自动替换为格式如”https://www.itylq.com/go/?url=外链”的内链形式,即我们常说的外链 go 跳转。

一、外链 go 跳转实现步骤:

1、当前主题 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/?url=$val\" ",$content);
}
}
}
return $content;
}

2、网站根目录下新建”go”目录,然后在该目录下创建 index.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='https://itylq.com/';
$title='参数错误,正在返回首页...';
}
}
} else {
$title='参数缺失,正在返回首页...';
$url='https://www.itylq.com/';
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="1;url='<?php echo $url;?>';">
<title><?php echo $title;?></title>
</head>
<body>
<div class="loading">
<div class="spinner-wrapper">
<span class="spinner-text">页面加载中,请稍候...</span>
<span class="spinner"></span>
</div>
</div>
</body>
</html>

3、实现效果:

代码实现wordpress外链go跳转并通过base64加密

P1.wordpress 文章中的外链已替换为”https://www.itylq.com/go/?url=外链”的形式

通过以上方式,我们已经简单实现了外链 go 跳转。但是还不是很完美,”https://www.itylq.com/go/?url=外链”这样的字符串还是会有外链地址,那要怎么把外链替换成一串无语义的字符串呢?可以对外链进行 base64 加密。

二、外链 base64 加密实现步骤:    //在普通 go 跳转代码基础上做下 base64 加密、解密即可

1、functions.php 文件对应 go 跳转代码部分,对外链进行 base64 加密:

 此处含有隐藏内容,请提交评论并审核通过刷新后即可查看!

2、”go”目录下 index.php 对 base64 加密字符串进行解密,还原出外链地址并实现跳转:

 此处含有隐藏内容,请提交评论并审核通过刷新后即可查看!

3、实现效果:
代码实现wordpress外链go跳转并通过base64加密

P2.wordpress 文章中外链转换为 go 跳转形式,并给外链进行 base64 加密处理

正文完
 
itylq
版权声明:本站原创文章,由 itylq 2023-04-25发表,共计2284字。
转载说明:本站文章遵循CC-4.0国际许可协议,转载请注明出处(格式如“来源:IT摇篮曲www.itylq.com")。
评论(2条评论)
验证码
tangtang 评论达人 LV.1
2024-09-21 10:39:49 回复

非常需要这个功能。

 Windows  Edge  中国河南省漯河市联通
jasonkim 评论达人 LV.1
2023-07-10 08:42:18 回复

非常不错。感谢分享~

 Macintosh  Chrome  中国辽宁省沈阳市联通