在新窗口中打开 WordPress 评论者链接

WordPress 程序源码写的很规范,符合 W3C 的 xhtml1-strict.dtd 标准。比说,让评论者链接在新窗口中打开,Wordpress 用的是 rel="external",而不是 target="_blank"。符合规范,这当然是好事啦,但是我们知道仅凭 rel="external" 是不能独自完成在新窗口打开的任务的,还需要一个 external.js 配合才行,而 WordPress 源程序中并没有包含 external.js 这个文件,也很少有主题将这个脚本纳入其中。

这里提供两种方案使 WordPress 评论者的链接在新窗口打开。

方法一:用 rel="external" 实现。

1、将以下代码另存为 external.js 文件。

function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external nofollow")
anchor.target = "_blank";
}
}
window.onload = externallinks;

2、然后将 external.js 文件上传到主题根目录下,并用以下方式调用。

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/external.js"></script>

方法二:用 target="_blank" 实现。(转自 荒野无灯,原址请见http://www.hacklog.cn/php/wordpress-comment-author-link-open-in-new-window.html

1、打开/wp-includes/comment-template.php,查找“function get_comment_author_link”。

2、在第148行(Wordpress 2.8.4,其他版本可参照)处添加 target='_blank',如下:

$return = "<a href='$url' target='_blank' rel='external nofollow' class='url'>$author</a>";

我现在用的是方法二,荒野无灯的方法,效果可以点击下面的留言中评论者链接。

  1. Pingback: Wordpress 修改全纪录 - Forece Blog

  2. Pingback: imbalance-mod完成 | YesCola.FM

  3. Pingback: 在新窗口打开评论者链接

  4. 奚少表示,升级3.0.2后貌似以上两种,加上木木的那个对我的主题都无效,于是我放狗搜到了这个function的方法:
    // Make comment author link URL open in new window
    function comment_author_link_window() {
    global $comment;
    $url = get_comment_author_url();
    $author = get_comment_author();
    if ( empty( $url ) || ‘http://’ == $url )
    $return = $author;
    else
    $return = “$author”;
    return $return;
    }
    add_filter(‘get_comment_author_link’, ‘comment_author_link_window’);

  5. Pingback: 无折腾,不WP:Wordpress折腾的一些细节 - 奚少收藏小窝

  6. Pingback: Wordpress 升级至3.0备忘 | 阿邙’S Blog

    • 我的邮件回复没用插件,原生的
      mail to comment插件我没用过不是很清楚,我以前用的是wp thread comment插件,有回复地址的

  7. 查了一下结果如下:

    The rel attribute is not supported in any of the major browsers.

    Note: Browsers do not use this attribute in any way. However, search engines can use this attribute to get more information about a link.

  8. 我在用浏览器抹杀了_blank
    完全可以让这两种方式都失效

    虽然我偶尔也会加一些
    但还是觉得链接的打开方式应该由自己来决定

  9. 月排行又重新計數了? 我改了代碼, 是以當天起算前一個月.
    W3C 禁開新視窗, 是當初廣告太泛濫了, 同時開十幾頁廣告的都有. 不開新視窗, 是對訪客的尊重, 訪客想開的話, 右鍵就有了~