MENU

Typecho 开启外链转内链

2020 年 01 月 19 日 • 阅读: 11050 • 博客

把博客中的外部链接转换为网站内链,据说有利于搜索引擎收录。该插件主要由 benzBrake 大佬 编写,同时支持转换文章和评论中的链接。

上传插件

下载 Master Branch Code 后上传到 Typecho根目录/usr/plugins/ 并解压,随后修改文件夹名称为 ShortLinks,最后修改权限为 0755。如下命令仅供参考,你可使用宝塔面板等操作。

cd Typecho根目录/usr/plugins/
git clone https://github.com/benzBrake/ShortLinks.git
chown -R www:www ShortLinks
chmod -R 0755 ShortLinks

启用插件

依次进入 控制台 - 插件 - 禁用的插件,找到 ShortLinks,点击 启用。现在刷新文章,查看外链是否转换成功。

修复冲突

实测插件与本主题冲突,需做如下修改,当然若链接可正常转换则无需操作。打开 Typecho根目录/usr/plugins/ShortLinks/Plugin.php,分别搜索如下内容并做相应修改,最后 禁用再启用插件

搜索

Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx

更改为

Typecho_Plugin::factory('Mirages_Plugin')->contentEx
搜索

Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx

更改为

Typecho_Plugin::factory('Mirages_Plugin')->excerptEx

修改模板

左岸大佬为项目提供了四套跳转模板,可直接到插件设置选择,效果如下。

新页打开

插件设置里有 新标签页打开文章外链 的选项,实测评论区并不可以,临时方法是打个 JS 补丁。将以下代码加入到 <head> 标签中。对于本主题,依次进入 控制台 - 外观 - 设置外观 - 主题自定义扩展,将代码加入到 自定义 HTML 元素拓展 - 标签: head 头部 (meta 元素后),也可直接加入到主题对应的 header.php 中的 </head> 标签前。

<script>
    // 评论区外链在新窗口打开
    document.addEventListener('DOMContentLoaded', initOuterLinkInComment);
    function initOuterLinkInComment() {
        document.querySelectorAll('.comment-list a[href*="/go/"]').forEach(a => a.target = '_blank');
    }
</script>

如果你开启了 PJAX,可能需要单独加入回调函数。对于本主题,依次进入 控制台 - 外观 - 设置外观 - PJAX(BETA) - PJAX RELOAD,将 initOuterLinkInComment(); 添加进入即可。

本文由 左岸大佬 原创,LOGI 修改后发表。
TG 大佬群 QQ 大佬群

最后编辑于: 2020 年 10 月 03 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

Loading captcha...

已有 11 条评论
  1. 熊猫 熊猫   Windows 10 x64 Edition  Firefox 105.0

    正确的做法是给外链添加 rel="noopener"
    不要转成内链重定向形式,也不要加nofollow。

  2. 陶小桃Blog 陶小桃Blog   Windows 10 x64 Edition  Google Chrome 102.0.0.0

    有个bug,在手机上会总是重定义到首页@(泪)

  3. Aloner Aloner   Windows 7 x64 Edition  Google Chrome 78.0.3904.108

    为什么加了文中的代码 评论区链接还是在当页跳转#(喷水)

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 81.0.4044.113

      @Aloner你的网址没隐藏 index.php,而这是我自用代码,没考虑那么多,有时间改一下

    2. Aloner Aloner   Windows 7 x64 Edition  Google Chrome 78.0.3904.108

      @LOGI谢谢,自己弄好了::quyin:maimeng::

  4. 季春二九 季春二九   Windows 10 x64 Edition  Google Chrome 78.0.3904.108

    博主 怎么上传后 插件列表没有了 文件名已修改

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 80.0.3987.116

      @季春二九可能是名称或路径错误

    2. 季春二九 季春二九   Windows 10 x64 Edition  Google Chrome 78.0.3904.108

      @LOGI根目录/usr/plugins/ 应该没问题吧 我再试试

    3. 季春二九 季春二九   Windows 10 x64 Edition  Google Chrome 78.0.3904.108

      @LOGI谢谢大佬 OK了

  5. 越界帮帮 越界帮帮   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

    老哥,宝塔怎么把权限修改0755啊,只能是755

    1. LOGI LOGI   Windows 10 x64 Edition  Google Chrome 79.0.3945.130

      @越界帮帮755就是0755哦