通过修改代码实现发布的文章页面直接跳转外链。

插入 JS 方法

这个方法非常简单,你只需要在对应的文章里面编写这段内容:

<script>window.location.href = "https://paul.ren"</script>

即可从文章页面直接跳转到 https://paul.ren 这个网站。因 Typecho 不同版本存在差异,如果这样设置之后访问文章这段内容显示成文字了,请在代码前后各增加一行,输入三个 ! 符号即可

修改模板方法

这个需要修改你模板的代码,相对于上面的方法,他需要更改 PHP 输出的内容,所以难度也相对更高,建议有 PHP 相关经验者尝试。

首先打开 Typecho 的后台,找到左上角的菜单,点击 控制台 > 外观 > 编辑当前外观 在右侧的列表里找到 index.php 文件。

模板一般会出现 <?php while($this -> next()): ?>这样的代码,我们需要编辑的就是这段区域。这里我们将由 Single 主题为例:

<?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
    if($this -> fields -> customLink){
        $this -> fields -> customLink();
    }
    else{
        $this -> permalink();
    }
?>

然后在你写文章的时候展开文章编辑器下方的 自定义字段 面板,添加一个名为 customLink 的字段,填入你要跳转的链接就可以啦!

这样,这篇文章的链接在首页里点击就自动跳转到 https://paul.ren 了。如果还需要改的更细致,可以参照上面的方法一并修改 archive.php 文件,这个是在筛选分类、日期下的文章展示页面。

以上转自:保罗的小宇宙 (paugram.com)

编写插件方法

插件启用步骤

  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 日
如果觉得我的文章对你有用,请随意赞赏