给WordPress添加上外链转内链的方法
前面说到近期因为Google沙盒事件对三十岁博客做了一些针对性处理,例如链接和评论的清理功能,还有主要的一点,就是修改网站外链成为内链跳转.具体单纯的跳转方法介绍请参看 WordPress的几种添加跳转内链的处理方式.下面我会说一下本站的具体处理方式.
出站链接一般分为如下几种情况:
1.评论作者url 2.评论内url 3.文章正文url 4.友链
第4条不在考虑范围,如果友链加上跳转,估计没人跟你换友链了.那我们首先看一下1和2.
一般theme的comment author和comment text都是在functions.php中进行处理,你可以选择直接修改 get_comment_author_url()或者comment_author_url()函数出现位置的<a>标签href属性即可.
<a id="commentauthor-<?php comment_ID() ?>" href="<?php comment_author_url() ?>" target="_blank">
修改为
<a id="commentauthor-<?php comment_ID() ?>" href="go.php?url=<?php comment_author_url() ?>" target="_blank">
当然我知道你会自己放好go.php的位置的.
这种方式,按照道理来说可以达到效果了,但是如果出现的位置多,修改起来也很麻烦,还是过滤器比较方便.下面的方法我在 WordPress的几种添加跳转内链的处理方式 一文说过,
我不知道为什么,网上找到的方式,对于我的主题都不适用,或者是我的Wordpress版本太老了吧,只有下面的方式好用.
add_filter('get_comment_author_url', 'add_redirect_comment_author_url', 5); function add_redirect_comment_author_url($text = '') { $text=get_option('home').'/go.php?url='.$text; return $text; }
把评论内的链接一起修改了吧.
add_filter('comment_text', 'add_redirect_comment_link', 99); //评论内容 function add_redirect_comment_link($text = '') { $text=str_replace('href="http://', ' target=_blank href="'.get_option('home').'/go.php?url=', $text); $text=str_replace("href='http://", " target=_blank href='".get_option('home')."/go.php?url=", $text); return $text; }
关于第3条,你觉得不够狠要不咱把文章正文的一起改了?你愿意用,咱提供.但是说好了,这不利于SEO的站内链接.尤其是Pretty Link之类的插件
add_filter('the_content', 'add_redirect_comment_link', 99);//文章内容全文链接替换,可能不利于内链
其实要是你愿意动弹,用jQuery指定标签范围进行链接替换也不错.但是一般没有那么勤快的人,代码方式如下,请自行调试
$('.fn a').attr({ target: "_blank","rel":"external nofollow","href":$(this).attr("href"),replace("http://","go.php?url=http://" });
好了,就这么多吧.至于go.php的内容在 WordPress的几种添加跳转内链的处理方式 已经提供了下载,你要是懒得看我再贴在这里吧 传送门 解压密码 http://30c.org
关心缩略图问题请参看 给你的网站加上指定域名显示在线缩略图功能,至于如何去掉缩略图免费账户的广告请参看 如何简单破解shrinktheweb的缩略图跳转广告 .
天不早了,洗洗睡.By Clove 2012-04-08
分享到: | |
不错
过来学习哈
折腾了一下,想想还是加个nofollow就算了吧
blog真干净
干净是内容少还是…
博主也是个博客控啊
充实一下吧,无论自己还是博客