Typecho:设置评论者网站链接新窗口打开

发现Typecho评论者网站链接都是在当前页跳转,这一点感觉不是特别友好,因为用户一般不会在返回上一页,也造成了用户流失。

看到网上有一个不修改程序即可实现的方法,留存备注下代码。

修改方法

修改主题文件:functions.php,在最后一行之前添加下面的代码

/**

* 评论者主页链接新窗口打开

* 调用<?php CommentAuthor($comments); ?>

*/

function CommentAuthor($obj, $autoLink = NULL, $noFollow = NULL) {    //后两个参数是原生函数自带的,为了保持原生属性,我并没有删除,原版保留

    $options = Helper::options();

    $autoLink = $autoLink ? $autoLink : $options->commentsShowUrl;    //原生参数,控制输出链接(开关而已)

    $noFollow = $noFollow ? $noFollow : $options->commentsUrlNofollow;    //原生参数,控制输出链接额外属性(也是开关而已...)

    if ($obj->url && $autoLink) {

        echo '<a href="'.$obj->url.'"'.($noFollow ? ' rel="external nofollow"' : NULL).(strstr($obj->url, $options->index) == $obj->url ? NULL : ' target="_blank"').'>'.$obj->author.'</a>';

    } else {

        echo $obj->author;

    }

}

然后在需要调取评论的地方将原来输出评论作者的函数,替换为新函数

原函数一般是<?php $comments->author(); ?>

改成<?php CommentAuthor($comments); ?>即可。