评论作者链接新窗口打开

今天又一个朋友问起“怎样让评论作者的网址链接在新窗口打开?”,我回说有3种常用方法:1. 修改WP源文件 wp-includes/comment-template.php 里面的 get_comment_author_link 函数 2. jQuery方法 3. WP函数hook方法

那位朋友最后选择了修改WP源文件,因为我刚好在忙暂时提供不了WP函数hook方法给他。

刚才吃完晚饭想了一下,我忘了我自己一直使用的是 jQuery 方法,而hook WP函数方法竟然没去想过,主要是 WP 函数 hook 方法是直接给链接加上 属性,这个是不符合神马 W3C 标准的,所以我个人喜欢用 jQuery 方法,当然熟悉js者也可以用原生js方法。不过各有所需,各有所在意,所以 WP 函数 hook 方法也有其用处,而且也方便。

OK!下面记录一下,并附上我一直使用的 jQuery 方法。

一、WP函数hook方法

大家都知道,一般的主题里面的评论作者链接都是用 comment_author_link() 函数生成的,查看了 WP 源码里面的函数后,立马写好测试一下解决,就是把原来的函数用 hook 方法给每个链接加上。

把下面的代码扔进主题的 functions.php 里面就行了

/* 评论作者链接新窗口打开 */
function my_get_comment_author_link() { //by zwwooooo
	$url    = get_comment_author_url( $comment_ID );
	$author = get_comment_author( $comment_ID );
	if ( empty( $url ) || 'http://' == $url )
		return $author;
	else
		return "<a target='_blank' href='$url' rel='external nofollow' class='url'>$author</a>";
}
add_filter('get_comment_author_link', 'my_get_comment_author_link');

二、jQuery 方法

1. 加载 jQuery 库,不懂者自行搜索

2. 用下面的 jQuery 代码给评论链接加上

jQuery(document).ready(function(){
   $('.commentlist a.url').attr({target:"_blank"}); //一般主题的评论列表ol的class就是commentlist,如有不同自行修改
});

ps1: 其实可以修改 comments.php,在 <ol class="commentlist"> 里面加上一个 id,如 <ol id="commentlist" class="commentlist">,有利于提高 jQuery 执行效率

jQuery(document).ready(function(){
   $('#commentlist a.url').attr({target:"_blank"});
});

ps2: 又其实你可以写成 jQuery 的扩展函数,如下:(注意:函数要写在调用的前面)

$.fn.add_target_blank = function(){return $(this).attr({target:"_blank"});};

函数调用,例如评论作者链接(#commentlist a.url)和侧边栏的链接(#sidebar a)都在新窗口打开,可以这样:

$('#commentlist a.url, #sidebar a').add_target_blank();

要用哪个方法就自己决定了,当然网上可能还有更好的方法,自行搜索。

完。

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25472

108 comments

  1. A.shun A.shun Opera Next 11.50 Windows XP

    沙发 :oops:

    沙发
  2. 爱宝贝 爱宝贝 Google Chrome 10.0.648.205 Windows XP

    哈哈,没想到这么快就写出方法来了,多谢多谢。
    没想到zww这么热心,真是一个大好淫 :mrgreen:

    板凳
  3. A.shun A.shun Opera Next 11.50 Windows XP

    要通过验证还必须是 js 的方法呐

    地板
  4. ......
  5. 砼砼 砼砼 Firefox 5.0 Windows 7

    其实,我一直没搞懂的就是add_filter和add_Aicxxx什么的区别。。。 :mrgreen:

    31楼
  6. 园子 园子 Firefox 5.0 Windows 7

    我使用的应该就是jQuery 方法。

    32楼
  7. 午夜客 午夜客 Google Chrome 14.0.797.0 Windows XP

    超链接目标
    _blank — 新窗口或新标签。

    33楼
  8. 歪歪数码 歪歪数码 Internet Explorer 8.0 Windows XP

    好像第一种方法比较适合我。谢谢!

    34楼
  9. 老李 老李 Google Chrome 14.0.803.0 Windows 7

    这个没注意过 人要走强留也不好

    35楼
  10. 益酷网 益酷网 Internet Explorer 9.0 Windows Vista

    总结的不错,学习一下,正需要了!

    36楼
  11. yesureadmin yesureadmin Google Chrome 12.0.742.9 Windows 7

    哪个JQ代码竟然在我的主题里和几个JQ都有冲突

    37楼
  12. yesureadmin yesureadmin Google Chrome 10.0.648.204 Windows XP

    不错,升到3.2了用上了你的hook方法,不错哦

    38楼
  13. 球犯 球犯 Google Chrome 12.0.742.112 Windows XP

    谢谢啦~之前一直是用插件 等下晚点折腾下试试 mark~

    39楼
  14. 蓝色离子 蓝色离子 Google Chrome 10.0.648.205 Windows XP

    用上了 :razz:

    40楼
  15. xyiblog xyiblog Google Chrome 14.0.835.202 Windows 7

    8错 我添加了,

    41楼
  16. 1小不点 小不点 Firefox 7.0.1 Windows XP

    我捣鼓了 貌似不行也

    42楼
  17. zwwooooo zwwooooo Opera 11.52 Windows 7

    @苏鲁豫
    函数修改的我试了,用jQuery吧

    43楼
  18. 44楼
  19. 昊云博客 昊云博客 Firefox 6.0.2 Windows XP

    试试,添加这个函数

    45楼
  20. 昊云博客 昊云博客 Firefox 6.0.2 Windows XP

    测试了火狐,谷歌,IE浏览器都没问题,谢谢了

    46楼
  21. 47楼
  22. 汉子博客 汉子博客 Google Chrome 24.0.1312.57 Windows XP

    不错,好用!

    48楼

Leave a Reply