当前位置:
首页 > 技巧 > WordPress无需插件外链转内链

WordPress无需插件外链转内链

分享一下优化了的代码,直接实现WordPress无需插件外链转内链,并且带base64 将源链接加密,以及给外链加上nofollow属性,不过有些但恐怕蜘蛛还是能爬行,所以大家直接robots禁止所有蜘蛛爬行 /go?url 目录吧,WordPress无需插件外链转内链.
下面开始教程:
首先,在你当前使用主题的 functions.php 中加入以下代码:

  1. add_filter('the_content','baezone_the_go_url',999);  
  2. function baezone_the_go_url($content){  
  3. preg_match_all('/href="(.*?)"/',$content,$matches);  
  4. if($matches){  
  5. foreach($matches[1] as $val){  
  6. ifstrpos($val,home_url())===false ) $content=str_replace("href=\"$val\"""href=\"" . get_bloginfo('wpurl'). "/go?url=" .base64_encode($val). "\"",$content);  
  7. }  
  8. }  
  9. return $content;  
  10. }  

然后在网站根目录下新建个名为 go 的文件夹,在其中写个 index.php 的文件,内容如下(请保存为UTF-8无BOM格式): 推荐大家用notepad++编辑好再上传,免得出其他错误。

  1. <?php $url = $_GET['url']; $url = base64_decode($url); ?>  
  2. <html>  
  3. <head>  
  4. <meta charset=utf-8 />  
  5. <meta name="robots" content="nofollow">  
  6. <meta http-equiv="refresh" content="0.1;url=<?php echo $url; ?>">  
  7. <title>正在为您跳转……</title>  
  8. <style> body{background:#000}.loading{-webkit-animation:fadein 2s;-moz-animation:fadein 2s;-o-animation:fadein 2s;animation:fadein 2s}@-moz-keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-o-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.spinner-wrapper{position:absolute;top:0;left:0;z-index:300;height:100%;min-width:100%;min-height:100%;background:rgba(255,255,255,0.93)}.spinner-text{position:absolute;top:41.5%;left:47%;margin:16px 0 0 35px;color:#BBB;letter-spacing:1px;font-weight:700;font-size:9px;font-family:Arial}.spinner{position:absolute;top:40%;left:45%;display:block;margin:0;width:1px;height:1px;border:25px solid rgba(100,100,100,0.2);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;border-left-color:transparent;border-right-color:transparent;-webkit-animation:spin 1.5s infinite;-moz-animation:spin 1.5s infinite;animation:spin 1.5s infinite}@-webkit-keyframes spin{0%,100%{-webkit-transform:rotate(0deg) scale(1)}50%{-webkit-transform:rotate(720deg) scale(0.6)}}@-moz-keyframes spin{0%,100%{-moz-transform:rotate(0deg) scale(1)}50%{-moz-transform:rotate(720deg) scale(0.6)}}@-o-keyframes spin{0%,100%{-o-transform:rotate(0deg) scale(1)}50%{-o-transform:rotate(720deg) scale(0.6)}}@keyframes spin{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(720deg) scale(0.6)}} </style>  
  9. </head>  
  10. <body>  
  11. <div class="loading">  
  12. <div class="spinner-wrapper">  
  13. <span class="spinner-text">加载中...</span>  
  14. <span class="spinner"></span>  
  15. </div </div>  
  16. </body>  
  17. </html>  

以上代码为美化版本,跳转效果更加美观,代码中已经用 base64 将源链接加密,并且加上了 nofollow
如果只是单纯想实现外链转内链这一功能请看下方
把以下代码加入主题根目录下的functions.php文件中(一般是在 ?> 之前)

  1. add_filter('the_content','dmeng_the_go_url',999);  
  2. function dmeng_the_go_url($content){  
  3. preg_match_all('/href="(.*?)"/',$content,$matches);  
  4. if($matches){  
  5. foreach($matches[1] as $val){  
  6. ifstrpos($val,home_url())===false ) $content=str_replace("href="$val"""href="" . get_bloginfo('template_url'). "/go?url=" .base64_encode($val). """,$content);  
  7. }  
  8. }  
  9. return $content;  
  10. }  

然后在主题根目录下新建一个 go 目录,并在该目录下新建一个内容如下的index.php

  1. <?php  
  2. $url = $_GET['url'];  
  3. $url = base64_decode($url);  
  4. header("Location:" . $url);  
  5. exit;  
  6. ?>  

即可单纯的实现WordPress内链转外链了。

2016年7月12日23:45:15,补充一个新的方式,也是无作为目前自用的方式:

首先,在你当前使用的主题的 functions.php 中加入以下代码:

  1. // 自动给文章的外部链接添加nofollow属性  
  2. add_filter('the_content','web589_the_content_nofollow',999);  
  3. function web589_the_content_nofollow($content){  
  4.  preg_match_all('/href="(http.*?)"/',$content,$matches);  
  5.  if($matches){  
  6.  foreach($matches[1] as $val){  
  7.  ifstrpos($val,home_url())===false )   
  8.  $content=str_replace("href=\"$val\"""rel=\"nofollow\" href=\"" . get_bloginfo('wpurl'). "/link?url=" .base64_encode($val). "\"",$content);  
  9.  }  
  10.  }  
  11.  return $content;  
  12. }  
  13. // 自动给文章的外部链接添加nofollow属性  

然后在网站根目录下新建个 link 的文件夹,在其中写个 index.php 的文件,内容如下(请保存为UTF-8):

  1. <?php   
  2. $url = $_GET['url'];  
  3. $a = '';  
  4. if$a==$url ) {  
  5.  $b = "http://www.wuzuowei.net/";  
  6. // echo 'true';  
  7. else {  
  8.  $b = $url;  
  9.  $b = base64_decode($b);  
  10. }  
  11. //Template Name:链接跳转(有过度)  
  12. ?>  
  13. <!DOCTYPE HTML>  
  14. <html>  
  15. <head>  
  16. <meta charset="UTF-8">  
  17. <meta http-equiv="refresh" content="0.1;url=<?php echo $b; ?>">  
  18. <title>正在跳转....</title>  
  19. </head>  
  20. <body>  
  21. </body>  
  22. </html>  

即可完美实现WordPress无需插件外链转内链。

WordPress无需插件外链转内链:等您坐沙发呢!

发表评论

表情
还能输入210个字

*