分享一个WordPress外链跳转教程,兼容知更鸟暗箱下载和文章索引

张戈博客很久很久之前转载过一篇关于博客外链跳转的方法(相关文章),后来安装了Anylink插件也就没有用到。近来清点插件时,我将Anylnk给淘汰了,换成了网上找到的给外链添加nofollow的代码。

一、原版代码

代码原理也挺简单,通过匹配文章content内容,若发现存在外链,就给这个外链a标签加上 rel="nofollow"属性。

这个代码常规博客确实可以用,但有可能导致一些特殊链接失效,比如这个代码很可能会让知更鸟主题的下载按钮无法弹出或者文章索引损坏,应该是替换过程中被破坏掉了。

针对这个问题,我对代码进行了第一个改进:

二、改进代码

①、加入了对常规http://或https://开头的链接判断,就能有效的绕过知更鸟主题的一些特殊链接,就因为这些特殊链接都不带http://:

②、2014-11-26补充:加入了对 完整a标签 判断:

主要目的是为了绕过高亮代码中的一些外部链接,因为在代码中出现自己博客的跳转形式可能会破坏代码功能,比如博客分享的《百度收录查询和显示代码》,若不过滤的话,其中的百度链接将会被加上跳转,对使用者带来困惑:

分享一个WordPress外链跳转教程,兼容知更鸟暗箱下载和文章索引

③、2015-08-31补充:加入对外链图片的过滤

有朋友反馈使用后,外链图片也跳转了,导致暗箱跪了。确实会有这个情况,所以在代码中加入了图片的过滤:

!preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)

偶然翻看博客旧文章,又看到了以前分享的跳转办法,觉得可以和现在的外链处理代码结合一下,或许可以相得益彰,更加完善!

详细部署步骤如下:

三、最终代码

①、新增跳转

根据以前分享的方法,在网站根目录新增一个文件夹,命名为go,并在go文件夹下新增一个index.php,内容如下:

现在用浏览器访问http://域名/go/?url=外链就能实现跳转了, 比如访问: http://zhangge.net/go/?url=http://www.baidu.com 就能跳转到百度了。

②、新增robots规则:

为了防止搜索引擎抓取这种跳转链接,我们可以在robots.txt里面新增禁止抓取/go的规则:

③、重写外链

i. 替换文章内容中的外链

在主题目录下的functions.php新增如下函数,即可将文章中的外链替换为go跳转的形式:

分享一个WordPress外链跳转教程,兼容知更鸟暗箱下载和文章索引
ii. 替换评论者的链接

在主题目录下的functions.php查找是否存在修改评论链接为新窗口commentauthor函数,如果存在则如下修改第8行,将$url修改为/go/?url=$url,其实就是在前面新增一个go跳转即可,相同的道理!

分享一个WordPress外链跳转教程,兼容知更鸟暗箱下载和文章索引

Ps:如果functions里面没有这个评论新窗口的函数,请自己找到评论列表输出的代码位置(可能在comments.php),然后参考修改即可(国内主题一般都会有个评论新窗口函数,自己仔细找找看)!

iii. 知更鸟副标题转载来源链接跳转

其实知更鸟的转载来源链接本身就有nofollow,不过强迫症嘛,还是继续修改下:

打开知更鸟主题目录下的includes文件夹,找到source.php文件,如下修改$reprinted所在行即可:

分享一个WordPress外链跳转教程,兼容知更鸟暗箱下载和文章索引

看到这里,相信你应该能轻松领悟方法了吧?就是在外链链接之前加上【http://博客域名/go/?url=】即可!需要修改博客哪个位置的外链,只要找到该位置对应的主题模板,然后参考上述代码修改即可!


2015-07-16 最新补充:

有不少朋友留言要我分享张戈博客目前在用的跳转页面代码,好吧,那就分享一下吧!

go.php 的代码如下:

也可以保存为 index.php文件,然后上传到网站根目录下的go文件夹(没有go文件夹就新建一个),实现 http://zhangge.net/go/?url=http://zhangge.net/ 的跳转形式。

更简单的评论者链接跳转:如果想要让评论者链接也弄成这种跳转形式,只要在WordPress主题目录下functions.php中插入如下代码即可:

记得代码中的“/go/?url=”需要根据实际使用的跳转形式修改即可!


 

2016-02-16 最新补充:张戈博客已分享最新跳转代码,更安全效率==>传送门

 

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:31   其中:访客  24   博主  7

  1. 叶德华 4 来自天朝的朋友 谷歌浏览器 Windows 7 上海市 联通

    张哥你首页是不是开缓存了?

  2. Alick.Li 4 来自天朝的朋友 谷歌浏览器 Windows 7 北京市 电信

    好东西 你不是说不折腾了吗….

  3. 糯米汇 5 来自天朝的朋友 谷歌浏览器 Windows 7 北京市 电信通

    我技术不够!呵呵

  4. 陌小雨 5 来自天朝的朋友 火狐浏览器 Windows 8.1 广东省珠海市 广东科学技术职业学院(珠海校区)

    蛮有用的哟!,网站汗通过备案,感受下是不是快乐许多。。 :grin:

  5. boke123网址大全 4 来自天朝的朋友 谷歌浏览器 Windows XP 广西南宁市 电信

    我这个站的都是直链,有空要好好研究一下才行。

  6. 欧亚出品 2 来自天朝的朋友 Safari浏览器 Unknow Os 上海市 联通

    我今天用在zblog上试试

  7. 梦想网络 5 来自天朝的朋友 谷歌浏览器 Windows 10 四川省成都市 电信

    正缺少文章跳转函数,拿去用了。

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      你博客的跳转页面不错,被我偷走了~稍微改良了下。

  8. 舍力博客 3 来自天朝的朋友 搜狗浏览器 Windows XP 广东省东莞市 联通

    我用是用这种办法,不够貌似有个代码可以不用再重新区分http://了的。在go文件夹下面的index.php加入代码
    个人觉得这个要好一点,不用在其他地方重新判断

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      很明显你没完全弄清楚文章意思。
      在go下面加代码只是用于跳转参数的判断,而在functions加代码却是用于判断是否需要重写url,添加go/?url跳转。

  9. wwwbby 0 来自天朝的朋友 Internet Explorer Windows 8.1 贵州省遵义市 电信

    老大我下载了一个页面跳转特效,如何将下面函数引用在特效里,我加去无法实现跳转

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 8.1 广东省深圳市 电信

      :evil: 乱填网址,拒绝回答任何问题。

      • yo花间游 0 来自天朝的朋友 谷歌浏览器 Windows 8.1 北京市 电信

        做了域名长短的判断??比方说转不了jd.com 但是jddd.com就可以

        • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 8.1 广东省深圳市 电信

          正则匹配问题吧?和本文有关系?

  10. 周杰伦视频网 3 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省益阳市 电信

    张哥,请问下我的怎么打开外部链接时没有“页面加载中,请稍后”的那个动画,单独打开go/index.phph页面可以看见动画。博客文章里的图片要是用的外部链接是不是也会在前面加上跳转的代码。

  11. 苗条的猪 1 来自天朝的朋友 谷歌浏览器 Windows 8 广东省东莞市 电信IDC机房

    怎么打开外部链接时没有“页面加载中,请稍后”的那个动画?

  12. Loser 1 来自天朝的朋友 火狐浏览器 Windows 10 江西省赣州市 移动

    为什么博主评论者链接跳转无效果?

  13. 博业网 2 来自天朝的朋友 谷歌浏览器 Windows 8.1 广东省深圳市福田区 电信

    我用了这个代码不行啊,显示404错误

  14. dd 0 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市荔湾区 电信

    友情链接的页面会自动添加吗,我想用友情链接做个导航站

  15. 林凡博客 1 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省常州市 电信

    今天折腾了下,采用了张兄弟的方法,果断很牛逼的实现了,谢谢啦

  16. 健美网 3 来自天朝的朋友 谷歌浏览器  GT-I9506 Build/LMY48Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.94 Mobile Safari/537.36 浙江省嘉兴市 电信

    支持、早就想要个了、谢谢

  17. 帅气小琦琦 4 来自天朝的朋友 谷歌浏览器 Windows 10 湖北省武汉市 电信

    遇到一个问题 就是因为站内有磁力链接 有磁力的格式 也有电驴的格式 这两种格式是没有后缀的 请问如何防止这类链接跳转呢

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      磁力和电驴也是有特征的,磁力是 magnet: *** ,电驴是 ek啥的。通过这些特征词排除即可。
      好人做到底,贴一下:

  18. 子歇 0 来自天朝的朋友 谷歌浏览器 Windows 10 河南省郑州市 联通

    我竟然看着本教程没有捣腾成功- –

  19. SSS 0 来自天朝的朋友 谷歌浏览器 Windows 7 江西省吉安市 电信

    这个给全站都添加了go,怎么排除网址!比如友情链接~求戈神帮助~

  20. 草根 0 这家伙可能用了美佬的代理 谷歌浏览器 Windows 7 北美地区

    请问这个跳转代码适用最新版的繁体wp嘛?

  21. 美丫美搭网 0 来自天朝的朋友 谷歌浏览器  Android 5.1 MI PAD 2 Build/LMY47I 湖北省 电信

    这个跳转挺好的,可是自定义自段里的连接没法跳转吧,还有如果是做淘宝客的,链接一般都超级长,这段跳转代码还能再封装一层缩短吗?

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 电信

      淘宝客这个估计不怎么好用,搜下短代码的看看

  22. 达拉崩7 0 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省长沙市 电信

    请问:外链跳转会把外链的参数都删掉,这个应该怎么解决呢?

加载中,请稍候...