Loading... 通过修改代码实现发布的文章页面直接跳转外链。 # 插入 JS 方法 这个方法非常简单,你只需要在对应的文章里面编写这段内容: ```javascript <script>window.location.href = "https://paul.ren"</script> ``` 即可从文章页面直接跳转到 `https://paul.ren` 这个网站。因 Typecho 不同版本存在差异,如果这样设置之后访问文章这段内容显示成文字了,请在代码前后各增加一行,输入三个 **!** 符号即可 # 修改模板方法 这个需要修改你模板的代码,相对于上面的方法,他需要更改 PHP 输出的内容,所以难度也相对更高,建议有 PHP 相关经验者尝试。 首先打开 Typecho 的后台,找到左上角的菜单,点击 **控制台** > **外观** > **编辑当前外观** 在右侧的列表里找到 `index.php` 文件。 模板一般会出现 `<?php while($this -> next()): ?>`这样的代码,我们需要编辑的就是这段区域。这里我们将由 Single 主题为例: ```php <?php while($this -> next()): ?> <div class="post-item"> <h2> <a href="<?php $this -> permalink() ?>"><?php $this -> title() ?></a> <?php if($this -> authorId == $this -> user -> uid): ?> <a class="edit-link" href="<?php $this -> options -> adminUrl(); ?>write-post.php?cid=<?php echo $this->cid;?>" target="_blank">编辑</a><?php endif; ?> </h2> <p><?php $this -> excerpt(100); ?></p> <div class="post-meta"> ... </div> </div> <?php endwhile; ?> ``` 我们找到 `<?php $this -> permalink() ?>` 这段用于输出链接的函数,将它替换为: ```php <?php if($this -> fields -> customLink){ $this -> fields -> customLink(); } else{ $this -> permalink(); } ?> ``` 然后在你写文章的时候展开文章编辑器下方的 `自定义字段` 面板,添加一个名为 `customLink` 的字段,填入你要跳转的链接就可以啦! * 字段名称:customLink * 字段类型:字符 * 字段值:[https://paul.ren](https://paul.ren/) 这样,这篇文章的链接在首页里点击就自动跳转到 `https://paul.ren` 了。如果还需要改的更细致,可以参照上面的方法一并修改 `archive.php` 文件,这个是在筛选分类、日期下的文章展示页面。 以上转自:[保罗的小宇宙 (paugram.com)](https://paugram.com/coding/typecho-article-links-external.html) # 编写插件方法 ### 插件启用步骤 1. **上传插件**:将调整后的代码保存到 `Plugin.php` 中,并将文件夹命名为 `RedirectToCustomURL`,上传到 `usr/plugins/` 目录。 2. **启用插件**:在 Typecho 后台,导航到 **“控制台” -> “插件”**,找到 `RedirectToCustomURL` 插件并点击 **“启用”**。 3. **设置自定义字段**:在发布或编辑文章时,添加 `redirect_url` 自定义字段,值为你希望跳转的目标 URL。 ``` <?php /** * RedirectToCustomURL 插件 * 实现文章页面自定义跳转到其他域名 * * @package RedirectToCustomURL * @author GPT4o * @version 1.0.0 * @link https://chatgpt.com */ class RedirectToCustomURL_Plugin implements Typecho_Plugin_Interface { /** * 激活插件方法, 如果激活失败, 抛出异常 */ public static function activate() { // 为文章渲染添加回调 Typecho_Plugin::factory('Widget_Archive')->beforeRender = array('RedirectToCustomURL_Plugin', 'redirectPost'); return _t('RedirectToCustomURL 插件已激活'); } /** * 禁用插件方法, 如果禁用失败, 抛出异常 */ public static function deactivate() { return _t('RedirectToCustomURL 插件已禁用'); } /** * 插件配置面板 * * @param Typecho_Widget_Helper_Form $form 配置面板 */ public static function config(Typecho_Widget_Helper_Form $form) { // 插件不需要特殊配置 } /** * 个人用户的配置面板 * * @param Typecho_Widget_Helper_Form $form */ public static function personalConfig(Typecho_Widget_Helper_Form $form) { // 插件不需要个人用户特殊配置 } /** * 实现自定义跳转功能 */ public static function redirectPost() { // 获取当前文章对象 $archive = Typecho_Widget::widget('Widget_Archive'); // 确保仅在单篇文章时执行跳转逻辑 if ($archive->is('single')) { // 获取自定义字段的跳转链接 $redirectUrl = $archive->fields->redirect_url; // 检查是否设置了跳转链接 if (!empty($redirectUrl)) { // 跳转到自定义链接 header('Location: ' . $redirectUrl); exit; } } } } ``` 最后修改:2024 年 10 月 06 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏