此文受启发于《为评论、留言者的主页链接添加链接跳转》一文,不过可惜的是风之逸童鞋介绍的方法是在 Bo-Blog 平台下,并不适用于 WordPress,但是我深信 WordPress 的强大比 Bo-Blog 而言有过之而无不及,所以我坚信 WordPress 一定也有类似的方法可以实现评论者链接的重定向跳转。
先说一下为什么要对评论者的链接进行重定向跳转处理。最主要的原因就是为了防止泛滥的 Spam,如果对评论者的链接进行重定向跳转,那么就算有 Spam 突破防线成功在你的页面驻扎,你也无需担心 Spam 会和当前页面抢权重了。或许你会说评论者的链接本来就已经加了 rel="external nofollow" 属性,再给链接做跳转处理是不是多此一举了?我当然不会做那样没有意义的事情,第一,百度这丫是不认识 nofollow 这个单词滴,加了 nofollow 也是白搭;第二,Google 对 nofollow 的权重分布方法已经调整过了,站内链接有可能会抢去当前页面的权重,所以仅靠 nofollow 也是不行的了。
问题的解决方法在我爱水煮鱼的博客中找到了答案:Comments Link Redirect 插件。
我爱水煮鱼称其为防 Spam 的终极办法,此言不虚啊。不过我向来比较排斥使用插件,我看了一下 Comments Link Redirect 插件的代码,完全可以复制到 functions.php 中来代替使用插件。将以下代码复制到主题文件夹下的 functions.php 中即可。
add_filter('get_comment_author_link', 'add_redirect_comment_link', 5);
add_filter('comment_text', 'add_redirect_comment_link', 99);
function add_redirect_comment_link($text = ''){
$text=str_replace('href="', 'href="'.get_option('home').'/?r=', $text);
$text=str_replace("href='", "href='".get_option('home')."/?r=", $text);
return $text;
}
add_action('init', 'redirect_comment_link');
function redirect_comment_link(){
$redirect = $_GET['r'];
if($redirect){
if(strpos($_SERVER['HTTP_REFERER'],get_option('home')) !== false){
header("Location: $redirect");
exit;
}
else {
header("Location: http://wange.im/");
exit;
}
}
}
然后再看评论者和评论者留言中的链接,形式如下:
http://wange.im/?r=http://评论者的URL
不过据 yanxc 同学测试,如果使用了 cos-html-cache 静态化插件,会导致我爱水煮鱼的 Comments Link Redirect 插件无法正常使用,因为我没有用过任何缓存或者静态化的插件,这一点我不得而知。不过 yanxc 给出了另一个评论者链接重定向跳转的解决方案,同样是插件,经我测试,同样也是可以将代码复制到 functions.php 中使用,代码如下:
add_filter('get_comment_author_link', 'add_redirect_comment_author_link', 5);
add_filter('comment_text', 'add_redirect_comment_text', 99);
function add_redirect_comment_author_link($text = ''){
$text=str_replace("href=",'href="javascript:window.location=',ereg_replace('href='[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]'',"0"", $text));return $text;
}
function add_redirect_comment_text($text = ''){
$text=str_replace("href=","href='javascript:window.location=",ereg_replace('href="[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]"',"0'", $text));return $text;
}
然后再看评论者和评论者留言中的链接,形式如下:
javascript:window.location='http://评论者的URL'
两个方案有相同之处,也各有异同各有优点,但最终目的都是一致的,就是堵住 Spam 的臭嘴,用 WordPress 的童鞋们可以各取所需。
-
选择性地给链接加 nofollow 标签2010年01月17日 -
Wordpress 免插件实现评论分页导航2010年01月13日 -
给主题做了个大手术2009年10月9日 -
Wordpress免插件防Spam骚扰2009年06月15日
感谢分享,这个正是我所需要的!
Pingback: 【WordPress技巧】[转]WordPress 评论链接重定向跳转 ‹ 清音陋屋—清音陋室,陋音,殇音阁,经典轻音乐,经典纯音乐,忧伤轻音乐,忧伤纯音乐,忧伤散文,经典配乐
博主我的一个博客别人留言加上他们网站,为什么点击他们的用户名跳转的还是我自己的博客首页呀?[link]http://www.51xingdong.com[/link]
还是喜欢用插件,改代码的话,博客程序更新后又要重新改代码。
Pingback: WordPress评论链接重定向跳转的方法[iNove主题测试] | 文搜网络
Pingback: 如何将WordPress的评论链接进行重定向跳转 | 中文网络赚钱工具导航
你好,我试用了一下水煮鱼的插件,或是更改function文件,结果跳转的时候,都转到了自己的主页,比如:链接显示为:http://wange.im/?r=http://www.lxlong.net 但是点击之后却跳转到自己的主页:http://wange.im,请问有什么方法可以解决,谢谢
Pingback: 给wordpress中的链接添加重定向 | Alien的博客
怎么我的不能转跳呀
试了一下,可以实现,谢谢博主的分享~
不过我感觉影响应该不大的吧,毕竟WP默认都加了nofollow的.
Pingback: 编辑comment-template.php,实现评论者链接外置。 | 温哥
搬家之后发现不能跳转了,直接显示主页,是不是服务器问题?
呃。。。可能吧,有时候会出现这样的情况
整个页面都挂了
Pingback: WordPress实现评论者网址重定向跳转 - 潇雨博客www.xycnn.net
呵呵,评论问题解决了,谢谢~~
两种方法都试过。。毫无效果。。。郁闷了。。
没找到原因,还是直接改了留言人的链接
我操,第二次评论又正确了。。北京 电信
晕,评论时显示我是内蒙的,我是北京的。。
下面一段好像有点错误,单引号内部出现单引号。。
我的主题functions.php文件只有两行代码,把你给的代理加进去后实现不了转向,怎么办呢?
做SEO好像很复杂,要注意的东西很多,连一个链接都在费功夫,做站长真是辛苦啊!
Pingback: Wordpress实现评论者网址重定向跳转 - 小孙博客
Pingback: 评论者网址重定向跳转 - Microhu's Blog -『微狐网』
解决了,呵呵
我感觉好像是因为我侧边栏的评论显示头像的原因,别人的好像都可以,别的主题也没有问题,晕了。呜呜
测试了第一张方法,好像不行
来到万戈的博客真是受益匪浅呀,比起木木公布的代码容易并且也注释的比木木清楚,这可是人气飞升的来源的
Pingback: 測一測 » 减少SPAM让WordPress评论链接重定向跳转
万戈你好,我想问下博客在文章和主页上作者那个地方的链接你是怎么去掉的,或是转到自己的首页,我在网上好像搜了很久都搜不到资料
你可以试一下the_author()函数
是哪个模板的函数呢?抱歉,很多内核我不大懂。
在你的index.php里找找吧,把现在和作者有关的函数替换成the_author()函数就可以了
搞定了,修改的是suffusion主题的actions.php,神一样的主题啊。(get_the_author_meta('ID')跟返回生成的url干掉了,本来想着跟showfom一样修改成主页地址,想了想还是算了
呵呵,搞定就好,其实如果不要链接的话,你可以直接把静态的写进页面,那速度还会快一些
真不知道这篇文章是谁写的,刚阅读一篇和这个一模一样的文章,也没有说转载
Pingback: wordpress评论链接重定向跳转 » 晓潘随谈
为何我用了水煮鱼的插件,结果跳转到了水煮鱼的网站
万戈也用的这方法呀~可行是可行,但你打开Debug看看,会有错误提示“Undefined index:r”
有时候用chrome打开评论链接不能跳转,不知道是不是这个原因造成的
出现403错误,求解
第二种有问题 显示[有错误
还是用了第一种 在"/"号加
上index.php就不与缓存冲突了
的确是有冲突
用上了第二种方法
不过还是更喜欢第一种
就准备用这招了
近期搜索引擎的收录下降
不知道是不是因为链接太多的原因
很受用。刚刚试了试。OK了。
侧边栏OK了。但是每篇文章的内容页下面的评论人链接没变,还是直接连的别人的网址
可能是优先级的问题,调高参数的优先级试试
额、spam 是啥玩意?我还得先了解下这个
万哥,用了这个方法后,Mail to Commenter Options插件给好友回复时发送的邮件链接也在前边加上了“http://domain.com/?r=”,点击后跳转到了博客的首页,请问万哥有什么好的解决法办吗?
你可以参看一下add_filter这个参数,把它的优先级调高一些
看add_filter这个函数里的最后一个参数,在以上代码的5和99,就是优先级,数字越小,优先级越高,也就是说,你可以把99降低一些试试
好,我试试去~
万哥,我降低了还是不行呀,我都降到1然后降到0还不行。。。
这个就不太清楚了,在待研究
用上了 哈哈
target="_blank"加再那里
Pingback: 大话Spam - 不知所云 Leo.N's Blog
正需要这个转向,一直在折腾,现在才发出。
我添加进去后,页面顶部出现一大堆代码!!
直接复制的,没有任何更改!!
既然在百忙之中,都愿意敲几个字,我也不想这样做的。
现在的站长就是急功近利,盲目求成,追求SEO...太坑人了
这个学习
这个有空了我去试试
感觉这个还是不错的,值得一试
我去试试去
不知道主题支持不支持呢。
有些主题不支持的。。。祝你好运呀
早就在用了
Pingback: Comments Link Redirect | 左岸印象
http://sfmovie.cn/go.php?url=http://评论者的链接
这种形式我也看到过,相当的不错
求教一下,我按照博主的第一个方案把代码复制到了functions.php中,但还是没有效果啊。我没有用cos-html-cache 静态化插件之类的
额,很多主题都不能用这个功能,好奇怪呀
也许是主体的原因吧。那我只好放弃啦。。
最近也上了这个功能。
有的主题不是调用get_comment_author_link()来显示评论作者及链接,而是分别用comment_author_url()和comment_author()两个函数来调用,比如iNove主题就是这样做的。所以得修改主题。
学完走人。
咱以后也要防点。
请问不侧边栏那个广告图片鼠标悬停显示内容是怎么弄的?用的是什么效果?
你可以看看这篇文章:
http://wange.im/jquery-slide-pic-show.html
我今天也研究了下。
方法:
进入wp-incloud,下载comment-template.php。
然后找到“$author“;
在其中插入 target="_blank"
然后再上传。
ok。
如果万大哥不介意的话,也可以去掉no_follow
其实可以用jquery来实现target="_blank"
nofollow是WP自带的
我等万哥今天的更新
Pingback: wordpress评论者网站在新页面打开 | 闲云野鹤情侣博客
呵呵,这个很不错,现在很讨厌垃圾留言评论
我是极其BS这些spam,现在只能用这个办法来抵制了
说实在的,你博客绝大多数技术都是很实用的,很人性化的,唯独这一个我表示强烈反对,为了防止所谓的spam,你把很多无辜的人给枪毙了。
不会啊,WP本来就是有nofollow标签的,不会误杀
我想学习老七,把你的最新评论都刷成我的!...哈哈
我有一天收到的spam比真正给我的留言多了五六倍!....
你肯定没有见识过老七刷屏的真正实力,那不只是最新评论里都是老七的,连我后台的评论也被刷了
不是很明白什么意思 但是我知道应该学习
说白了就是解决spam的根本方法
好吧 我要试试
能不能把你现在的Wp主题中comments.php文件给我看看啊
不知道你现在使用了什么版本的WP,我使用2.92这个方法不管用,能否赐教?
我现在就是2.9.2,有效啊
人肉spam可耻,最讨厌XX SEO
我现在就在收集这些IP,见一个封一个!
我的怎么不好用啊 加入第一段代码后 ~
效果是有了 但是 点击后显示 403#
Access to this resource on the server is denied!
这个方法对很多主题不适用,原因不明
这个方法好。收藏了。
貌似这个不起作用在这个主题上,无论我加JQuery还是什么插件都无效
有点难度
加了后显示的确实是:http://itaboutweb.com/?http://评论者网址,但是却没有正常跳转,而是停留在了主页上, 原本主页的地址为http://itaboutweb.com/,现在http://itaboutweb.com/?http://评论者网址也成了主页汗死,都不晓得怎么弄才能让他正常跳转了。
你可以直接用插件试试
装插件也不行,估计和下面的朋友碰到了同样的问题,是主题无法支持了。
对我那个主题貌似无效,用水煮鱼的插件也不行。
也有可能,我已经碰到过一个这样的问题了,无能为力~
Pingback: 为wordpress评论者链接转化为跳转链接|超人流水账
没用过……我有那个测智商就OK
呵呵,欢迎啊~
先收藏吧 回来有人气时再用~~
这和有没有人气没关系啊,主要是防spamer的
弄了这个之后,以后WordPress升级的时候要不要在弄一遍啊?
这个是修改主题文件,和以后WP升级不影响
看你的这个评论者链接就去百度搜实现方法,结果还是在你博客里面搜到了,强
哈哈,原创的都被我比下去了?看来我这盗版的排名还挺高啊
我没几个评论,权重也可要可不要,所以这招先收藏,等练成名博再拿出来使
这个主要是为了削弱spam的力量,不是名博也能用啊
不错的想法,呵呵,我把这个改进了一下。
没太明白这是干什么用?
为了防止spam用的
换了第二种以后,JS代码和Thread Comment有冲突,会让嵌套回复的内容变为空白。
但是第一种跳转的时候会出错,错位信息是:
“403 Forbidden
Access to this resource on the server is denied!
--------------------------------------------------------------------------------
Powered By LiteSpeed Web Server
LiteSpeed Technologies is not responsible for administration and contents of this web site! ”
搬了一次家 第一种方法出问题了 换第二种
这两种方法我都用过,其实原理是一样的
呃,我过几天也把这个加上吧。原来还有抢权重的问题。
其实影响不大,评论链接本来就有nofollow了,喜欢折腾的朋友可以加上玩玩,呵呵
并且添加之后还会引错误,添加新的评论时提示代码错误……
那估计是你加错地方了,加我QQ吧:101149488
已加。
没收到好友请求。。。。你的Q是?
351577763
我启用了之后为什么没有变化呢?
你是用方法一还是方法二呀?两个我都测试过,没问题
楼下也有好多同学都用的方法一,也都OK的
直接使用的插件。
这样以后升级方便些。
直接加在主题中的functions.php,不影响WP日后升级哟
加了,貌似没用啊……
效果见:
demo.zben.net
下面不能嵌套了,换个地方回复
应该不会没用的,看看是不是加错地方了,是主题文件夹下的functions.php哦,加在开始与结束符之间就行
好东西啊~
资源挺好的,用博客作seo的可以试试了……
谢谢分享哈哈,现在去弄.
呵呵,动作还真快,好像已经弄好了嘛
哈哈是呀,就是复制一段代码.
现在用akismet,感觉垃圾评论全被挡住了。。。不过也许是垃圾评论还不够多的原因
AK确实够强大的,用AK时,我只有一次遇到漏网
我不喜欢修改系统文件,还是用插件比较好。不过没什么意义。
我试试
看的都晕了,看来我真是没有技术的命啊!哈哈!
我也是技术小白啦,都是别人网上看来的,自己汇总下罢了
忘记改链接了,新建打开竟然全都链接到你这里了……哎,拿来主义也要讲究方法啊。
哈哈,这是我设的陷阱,中招了吧
幸亏我及时发现,遏制了你的险恶计划!~

我是来自M-18星云的朋友……
这个在ZBLOG也好用么!!!!
只收集了WP和boblog的方法,对zblog还没怎能么研究过,不好意思啊~
这个其实很实用的
非常实用啊,我要加进正在总结的 part 3,哈哈
你的代码武装系列才真的实用呢,我这是现学现卖罢了
嗯哼
嗯哼啥呀?
技术人才啊,不过你这样就是有意的把博友的链接去掉被,你去别人的博客上不也想留下自己的链接么,己所不欲勿施于人,我觉得你这么做不太好。
不是把链接去掉哟,还是可以链接到评论者网站的,只不过是做了转向而已,你可以试一下。
而且评论链接本来就是nofollow的,没有评论者是为了分得权重来留言的吧,除非spam,所以这招只是针对spam的
说更新就更新哈!支持支持!
很实用的方法。。。
好久不弄这些技术活了,文章读起来都感觉有点吃力了~
确实好久没见你更新呢,去看看忙些什么
用法也很简单哟~
我不加跳转,如果有谁因为我这里可以增加权重,我愿意为你提升~
垃圾吗?自然有其他的办法可以对付~
我看到spam已经害怕了,不得不出此狠招
哈哈,但是相当的实用哦
围堵 + 绞杀 英勇的 Spam 可谓各路豪杰大显身手!
现在感觉 Spam 虽然很厉害,但有极少会漏网。
另外,缓存插件似乎与我们常用的一些插件都会有冲突,从未使用过呢。
恩,我防spam连插件都不用了,呵呵,缓存插件确实和其他有冲突,所以我一个也不用
研究一下
我还没用上任何缓存插件呢
不到3000IP/日,我决不用缓存插件
这么多人来盖楼了!
我一般不使用html缓存插件。
我也不用什么缓存插件,IP太少,没必要缓存
不知道是干什么的,不过还是用了。
吼吼,起的真早呀老兄
已经很久没有了……
SEO研究不是很深学习一下。
我也是现学现卖,没有深入地学习过SEO
这个 呵呵 有那么大影响么
这是往哪里跳啊,我在WOPUS看过你的WP技巧,写的都不错,先看看,以后说不定用的上。
就是往评论者的网址跳,只不过加了个301转向
太深奥了!
别让代码蒙蔽了眼睛,其实这很简单
万戈,给你个建议,仅仅是个人的小小的建议:这样的技术文章可以适当少写一些,写久了你会知道的。。。
狼兄,我没有你那样的文采,所以只好找点技术文章来充数
谢谢你的建议哟,等15号我回到了上海,有好多生活随笔等着我写呢
别啊,就我这还文采...都是破烂文章,我自己都看不过眼,晕...
我现在用办公室电脑上你博客,IE6,不那么卡了,但是还是有一点,有时打字会有一点点延迟现象。
我这两天真是偷懒到家了,一直在写那个系列文章,哈哈。
我倒是很喜欢你那种风格的小说呢,可以让我回味一下大学生活,很有共鸣的感觉,真的很期待哦
至于IE6嘛,想抛弃又不舍得,最主要是我自己用IETester没发现这样的问题,不好修改~~~
垃圾留言防还是重点,我不允许我的博客上有垃圾留言;这个就不做了
这和防spam是互补的,不冲突啊
学习了
看着麻烦 不弄了
不麻烦啊,我只是把代码写出来了而已,其实超简单的
第一种方法,如果要在新标签页打开转向链接,应该怎么修改呢?
修改wp-includes/comment-template.php,在相应的地方加入target="_blank";
简单而实用吧,我怎么一早没发现呢。。。
是啊。。很实用~~已经用上了。嘿嘿!
下次要争取抢到沙发!!
呵呵,动作还挺快嘛,我去瞧瞧
验收了一下,同学不能照搬哟,location部分要改成你自己的链接
发现了。。= =~真囧。。
用了这个插件就不要ak了?
这个插件不是用来拦截spam的,而是让spam无效,所以ak还是要滴,就算难得有几条漏网之鱼也不用怕了
哈,你动作真快呀。
呵呵,我研究了老半天呢
呵呵,每日更新,明日请早
不错,这方法要学习下
还是没发现你这哪里错位了- -
错位问题已经解决啦,原来是字体问题,我是XP系统,没有微软雅黑,所以看上去就会有错位的现象,我装了个微软雅黑字体就好了
chrome下你這篇文章的代碼行直接到右邊去了。。。
你不说我还没注意叫,在FF下也是。。。
加了个overflow,应该好了,谢谢提醒