修改外观

登进后台,选择控制台-外观-编辑当前外观。 在模板文件中 选择 head.php

<head> 的后面插入

<base target="_blank"/>

这种方法是全局性的,不仅文章内的链接会在新窗口打开,连着主页的链接也会在新窗口打开。

经过测试实践发现,通过修改PHP函数实现的方式更为稳定且兼容性好。所以推荐使用这种方式,具体参考如下

直接在主题里集成文章链接新窗口跳转,在function.php的添加 parseContent() 函数,函数为

//未添加nofollow
 function parseContent($obj){
    $options = Typecho_Widget::widget('Widget_Options');
    if(!empty($options->src_add) && !empty($options->cdn_add)){
        $obj->content = str_ireplace($options->src_add,$options->cdn_add,$obj->content);
    }
    $obj->content = preg_replace("/<a href=\"([^\"]*)\">/i", "<a href=\"\\1\" target=\"_blank\">", $obj->content);
    echo trim($obj->content);
}

如果需要添加rel=nofollow,则如下

//添加nofollow
function parseContent($obj){
    $options = Typecho_Widget::widget('Widget_Options');
    if(!empty($options->src_add) && !empty($options->cdn_add)){
        $obj->content = str_ireplace($options->src_add,$options->cdn_add,$obj->content);
    }
    $obj->content = preg_replace("/<a href=\"([^\"]*)\">/i", "<a href=\"\\1\" target=\"_blank\" rel=\"nofollow\">", $obj->content);
    echo trim($obj->content);
}

该方法的原理就是正则文章的超链接标签,然后加上相应处理即可。使用该方法需要修改主题 post.php 文件,将默认的内容输出<?php $this->content(); ?> 改成 <?php parseContent($this); ?>

原帖地址:https://www.skyqian.com/archives/typecho-URLOpenOnNewLabel.html

标签: none

添加新评论