typecho超链接新窗口打开
修改外观
登进后台,选择控制台-外观-编辑当前外观。 在模板文件中 选择 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