侧边栏壁纸
博主昵称
洛叶

生活不是电影,再见容易,再见难

Typecho文章链接用新窗口打开

2021年12月28日 2.3k阅读 0评论 138点赞

这篇文章是我去年发过的,今天重新搭建Blog刚好需要就找了一下 想着应该会有人需要就重新发一下
用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);
    }

示例1
使用该方法需要修改主题 post.php 文件,将默认的内容输出<?= Utils::getContent($this->content()); ?> 改成 <?= Utils::getContent(parseContent($this)); ?>
这段代码大概在42行,找不到的话直接搜索<?= Utils::getContent($this->content()); ?>就行了
示例2

138

—— 评论区 ——

博主关闭了所有页面的评论
博主栏壁纸
博主头像 洛叶

生活不是电影,再见容易,再见难

70 文章数
38 标签数
19 评论量