Typecho 站内搜索插件 SiteSearch(BUG)

今天早上醒的特别早,也睡不着了,躺着也没啥意思,起来捣鼓博客吧,自从主题及系统升级完后一直还没测试过站内搜索的功能,尝试一下,结果发现问题,这篇文章做个记录。

这个问题不一定其它朋友遇到,但是我是真遇到了,这个博客永久链接地址设置了自定义地址 /archives/{slug}.html 。

搜索完成后,地址链接错误,给出的链接地址还是 https://9sb.net/archives/{slug}.html 不是真实的文章链接地址,随后找 AI 解决一下。

找到插件目录Action.php文件,找到原代码:

    private function formatResult($post, $matchType, $snippet = null)
{
    // 根据类型生成正确的URL
    $type = $post['type'];
    $cid = $post['cid'];
    $slug = isset($post['slug']) ? $post['slug'] : '';
    
    if ($type === 'page') {
        // 独立页面使用slug生成URL
        $url = Typecho_Router::url('page', array('cid' => $cid, 'slug' => $slug));
    } else {
        // 文章使用默认路由
        $url = Typecho_Router::url('post', array('cid' => $cid));
    }
    
    $result = array(
        'title' => $post['title'],
        'url' => $url,
        'date' => date('Y-m-d', $post['created']),
        'matchType' => $matchType,
        'contentSnippet' => $snippet
    );
    
    return $result;
}

直接更换为:

    private function formatResult($post, $matchType, $snippet = null)
{
    $type = $post['type'];
    $slug = isset($post['slug']) ? $post['slug'] : '';
    $siteUrl = rtrim(Helper::options()->siteUrl, '/');

    if ($type === 'page') {
        // 独立页面沿用系统原生路由
        $url = Typecho_Router::url('page', array('cid' => $post['cid'], 'slug' => $slug));
    } else {
        // 文章强制适配自定义永久链接 /archives/{slug}.html
        $url = $siteUrl . '/archives/' . htmlspecialchars($slug) . '.html';
    }

    $result = array(
        'title' => $post['title'],
        'url' => $url,
        'date' => date('Y-m-d', $post['created']),
        'matchType' => $matchType,
        'contentSnippet' => $snippet
    );
    
    return $result;
}

然后再去测试,问题已经解决,OK 收工。

😊
提交

评论区

共 14 条评论

  1. 头像
    我用的Typecho 1.2, 自带的搜索不能搜空格分开的两个词(AND逻辑),不知道1.3 是不是问题依旧。
    但是你这个可以搜出来。
    6月22日 广东
    1. 头像
      Huo 博主
      @崔话记 哈哈 我的升级到 1.3 了 我这个搜索是有个插件搞定的 满心主题有一个配套的插件 具体有没有魔改就不知道咯
      6月23日 河北
  2. 头像
    现在AI帮助改代码挺方便
    6月15日 美国
    1. 头像
      Huo 博主
      @威言威语 我都是用AI搞定的,如果没有AI是真一点都搞不定呀
      6月15日 河北
  3. 头像
    优秀,现在有AI真方便
    6月14日 浙江
    1. 头像
      Huo 博主
      @织梦岁月 的确是 比如在没有 AI 之前我是真不知道怎么解决 毫无头绪啊 现在就很方便了
      6月14日 河北
  4. 头像
    折腾使人进步 blobcatfacepalm 。
    6月14日 湖南
    1. 头像
      Huo 博主
      @皮皮社长 有道理 闲着没事的时候就得折腾
      6月14日 河北
  5. 头像
    测试了一下,效果不错,挺快的。静态博客的搜索第一次点击都会需要一点时间加载,动态博客真不错
    6月13日 重庆
    1. 头像
      Huo 博主
      @w4j1e 我这菜鸟也是修修补补,尽量让它最好吧,加速方面用了腾讯的 EO
      6月13日 河北
  6. 头像
    AI有时差错的效率还是挺高的。
    6月13日 上海
    1. 头像
      Huo 博主
      @fengc's Blog 的确是 以前的时候假如有问题了 各种的问别人 现在就特别方便了
      6月13日 河北
  7. 头像
    好像也就几个月吧,AI改变了好多
    6月13日 江苏
    1. 头像
      Huo 博主
      @花非花 的确是 像我这样的菜鸟都能使用 AI 解决一些简单的问题了 之前是一点代码不懂啊
      6月13日 河北