Old

评论作者链接新窗口打开

今天又一个朋友问起“怎样让评论作者的网址链接在新窗口打开?”,我回说有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. xyiblog xyiblog Google Chrome 14.0.835.202 Windows 7

    8错 我添加了,

    41楼
  6. 小不点 小不点 Firefox 7.0.1 Windows XP

    我捣鼓了 貌似不行也

    42楼
  7. zwwooooo zwwooooo Opera 11.52 Windows 7

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

    43楼
  8. 44楼
  9. 昊云博客 昊云博客 Firefox 6.0.2 Windows XP

    试试,添加这个函数

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

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

    46楼
  11. 47楼
  12. 汉子博客 汉子博客 Google Chrome 24.0.1312.57 Windows XP

    不错,好用!

    48楼

Leave a Reply