惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Martin Fowler
Martin Fowler
Schneier on Security
Schneier on Security
S
Schneier on Security
A
Arctic Wolf
L
LangChain Blog
T
Threatpost
GbyAI
GbyAI
V2EX - 技术
V2EX - 技术
Jina AI
Jina AI
U
Unit 42
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
Spread Privacy
Spread Privacy
F
Fortinet All Blogs
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
博客园 - 【当耐特】
S
Secure Thoughts
美团技术团队
N
News | PayPal Newsroom
爱范儿
爱范儿
Latest news
Latest news
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
S
Security @ Cisco Blogs
V
V2EX
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
腾讯CDC
The Hacker News
The Hacker News
V
Vulnerabilities – Threatpost
Cyberwarzone
Cyberwarzone
Google Online Security Blog
Google Online Security Blog
N
Netflix TechBlog - Medium
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Last Watchdog
The Last Watchdog
N
News and Events Feed by Topic
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
Security Archives - TechRepublic
Security Archives - TechRepublic
大猫的无限游戏
大猫的无限游戏
Security Latest
Security Latest

记录生活,精彩一刻

平台迁移擅自改动定价,IDC 服务商不能把成本转嫁到老用户 忙里偷闲,给盆景“善后”的一晚 腾讯云 EdgeOne 国内站 福利 与之前兑换没冲突 速度上车 打工人的快乐,就藏在这十几分钟的晚霞里 外地支援这事,从帮忙变成了义务 我又没忍住,又去找AI帮忙了,这次还好没翻车 我用AI写插件翻车了,留言区炸了,最近还是消停点吧 当探店吃播撞上《网络测评规范》 Typecho 插件推荐 UploadPlugin 留一个烂员工,毁掉整个团队,你怎么看? 牙齿治疗决策,还是想保住这颗牙 极为罕见的闪电画面,“上行闪电”又称“逆闪” 到现在不知道怎么介绍自己 十年之约走到一半,2026年我们还在 十年之约走到一半,2026年我们还在 十年之约走到一半,2026年我们还在 手痒没忍住,把家里的珍珠柏给剪了 手痒没忍住,把家里的珍珠柏给剪了 手痒没忍住,把家里的珍珠柏给剪了 1111111111 Typecho-Riven主题正式发售啦 听劝!博客背景持续优化,缓解视觉疲劳 Typecho-Riven主题正式发售啦 听劝!博客背景持续优化,缓解视觉疲劳 听劝!博客背景持续优化,缓解视觉疲劳 Typecho-Riven主题正式发售啦 半路登机,市值冲上5.5万亿:黄仁勋这趟访华值了 半路登机,市值冲上5.5万亿:黄仁勋这趟访华值了 半路登机,市值冲上5.5万亿:黄仁勋这趟访华值了 博客首页调整,更简洁,菜鸟借助 AI 搞定 博客首页调整,更简洁,菜鸟借助 AI 搞定 博客首页调整,更简洁,菜鸟借助 AI 搞定 小龙虾的“钳子”到底有什么用?聊聊OpenClaw的Skills 小龙虾的“钳子”到底有什么用?聊聊OpenClaw的Skills 小龙虾的“钳子”到底有什么用?聊聊OpenClaw的Skills 手机电视都能用的追剧神器,OK影视 - 让你躺着看大片 手机电视都能用的追剧神器,OK影视 - 让你躺着看大片 手机电视都能用的追剧神器,OK影视 - 让你躺着看大片 公众号规则改变运营挑战 公众号规则改变运营挑战 公众号规则改变运营挑战 每年如此的过敏性鼻炎,痛苦 每年如此的过敏性鼻炎,痛苦 每年如此的过敏性鼻炎,痛苦 日本红枫树的种植方法与管理技巧 推荐一款干净好用的安卓听书工具,还能自己加源,用起来太省心了
Typecho 站内搜索插件 SiteSearch(BUG)
Huo · 2026-06-13 · via 记录生活,精彩一刻

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

这个问题不一定其它朋友遇到,但是我是真遇到了,这个博客永久链接地址设置了自定义地址 /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 收工。