完美解决Typecho的文章内容中的链接添加新窗口跳转的方法

PHP源码 Typecho代码 2019-12-21 阅读:284

默认情况Typecho文章中如果有添加链接,那么是从当前窗口跳转的,并且外链没有添加nofollow标签,不利于SEO,Typecho文章内链接新窗口并添加nofollow标签如下。

或许是小不习惯点击关闭按钮多于后退按钮,所以强迫症又复发了。于是发生了后面的事儿,每一次小不发文绝大可能都是因为将搜索引擎翻了个底朝天都没有然后,然后却又无疑撞到“玄机”,经历对typecho 1.0的var目录刨根,黄土厚爱有人心,最终也算解决了typecho 1.0文章内链接从新窗口打开及给文章内链接增加nofollow的问题。

在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);
    }
    echo trim($obj->content);
}

修改为:

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);
}

可能方案并不完美也不规范,小的不是不提倡修改程序源码的,但是介于小不不会php做不到写插件及通过修改模板达到相同效果也就只能动程序了,谁让你“不乖”。当然如果大牛看到了本文请略过,然后再大法神功写过模板函数或者造个插件都是极好的。

效果为:https://www.hiai.top/archives/45.html

版权声明

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://hiai.top/archives/227.html (转载时请注明本文出处及文章链接)

如果觉得我的文章对你有用,请随意赞赏

0条评论