Typecho文章链接用新窗口打开
洛叶 / 2020-10-29 / 编程技术 / 阅读量 84

今天刚好需要这个就找了很久,发现基本上都没有用,都是很久以前的
就自己弄了一下 用PHP函数实现 文章链接用新窗口打开

在主题里function.php添加 parseContent() 函数,函数为

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是什么意思 一个HTML标签的属性值,搜索引擎优化(SEO)的兴起,它渐渐被使用,这个标签的意思是告诉搜索引擎不要追踪这个链接 无视这个链接,如果A网页上有一个链接指向B网页,但A网页给这个链接加上了rel=”nofollow” 标注,搜索引擎就不会把A网页计算入B网页的反向链接,对网站SEO优化很有用也可以有效反正某些链接降低网站的权重。)
这段我加在了最后面

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 文件,将默认的内容输出<?= Utils::getContent($this->content()); ?> 改成 <?= Utils::getContent(parseContent($this)); ?>
这段代码大概在42行,找不到的话直接搜索<?= Utils::getContent($this->content()); ?>就行了

代码

微信捐赠
请使用微信扫一扫进行赞赏
1 + 1 =
快来做第一个评论的人吧~