今天又一个朋友问起“怎样让评论作者的网址链接在新窗口打开?”,我回说有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();
要用哪个方法就自己决定了,当然网上可能还有更好的方法,自行搜索。
完。
- 本文标题:评论作者链接新窗口打开
- 本文链接:https://zww.me/archives/25472
- 发布时间:2011年06月25日 10:18
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
8错 我添加了,
@xyiblog
慢慢折腾
我捣鼓了 貌似不行也
@小不点
可以的,我以前一直用着
@zwwooooo
你帮我看下
貌似不行也 http://xbdsky.cn/the-idea-of-%E2%80%8B%E2%80%8Bmother.html#comments
@小不点
你的是mg12的主题,你可以去他的博客看看,我记得他写过这类文章。
@苏鲁豫
函数修改的我试了,用jQuery吧
试试,添加这个函数
测试了火狐,谷歌,IE浏览器都没问题,谢谢了
不错,好用!