给大家分享一段wordpress外链转内链的代码,并且支持跳转页、加nofollow标签、加密原链接功能。把下面的代码加在主题的functions.php中即可。
add_filter(‘the_content’,’baezone_the_go_url’,999);
function baezone_the_go_url($content){
preg_match_all(‘/href=”(.*?)”/’,$content,$matches);
if($matches){
foreach($matches[1] as $val){
if( strpos($val,home_url())===false ) $content=str_replace(“href=\”$val\””, “href=\”” . get_bloginfo(‘wpurl’). “/go?url=” .base64_encode($val). “\””,$content);
}
}
return $content;
}
上面的代码需要配合一个跳转页实现,在网站根目录新建一个目录“go”,在其下创建index.php文件,内容如下:
$url = $_GET[‘url’];
$url = base64_decode($url);
header(“Location:” . $url);
?>
这样就实现了wordpress文章中外链转内链,当然你还可以在跳转页加上延时跳转或手动跳转,也可以加上自己的广告。
注:
文章中的代码中加入了BASE64编码函数,会造成&等字符解码错误,连接无法打开,去掉base64函数即可。另外,跳转的连接中如果本身就带有函数,可能造成跳转页取连接不准确,可以试试下面的代码:
$url = $_SERVER[‘REQUEST_URI’];
$cd = strlen($url) – 9;
$u = substr($url,9,$cd);
echo ‘点击打开’;
用Location是302跳转。如果想用301的话需要发出301信息。
< ?php
$url = $_GET[‘url’];
header( “HTTP/1.1 301 Moved Permanently” );
header(“Location:” . $url);
?>
资料来源http://www.baezone.com/computer/939.html