Typecho CF 隐藏侧边栏无效归档链接

本站基于 Typecho CF 搭建,侧边栏有一个「归档」小工具,链接是 /2026/10/ 这类日期归档地址。但本站并未在 Typecho 后台配置日期归档固定链接,点击后一律 404。

一、用 Astro 注释隐藏

在 src/pages/archive.astro 和 src/themes/typocho-theme-note/components/Archive.astro 中,找到侧边栏的「归档」块,用 Astro 注释包住:

{/*
{sidebarData.archives && sidebarData.archives.length > 0 && (
  <section class="widget">
    <h3 class="widget-title">归档</h3>
    <ul class="widget-list">
      {sidebarData.archives.map((archive) => (
        <li><a href={urls.siteUrl + '/archive/'}>{archive.date}</a></li>
      ))}
    </ul>
  </section>
)}
*/}

二、为什么用 Astro 注释

必须用 {/* ... */}(Astro 注释),不要用 <!-- ... -->(HTML 注释)。

原因:

  • {/* ... */} 是 Astro/JSX 注释,被注释的代码不会被渲染,也不会执行
  • <!-- ... --> 是 HTML 注释,虽然浏览器不显示,但 Astro 编译时依然会执行里面的 .map(),可能导致报错

三、控制侧边栏数量

顺带限制「最新文章」和「最近回复」数量。编辑 src/lib/sidebar.ts,在文件顶部加两个常量:

const RECENT_POSTS_LIMIT = 5;
const RECENT_COMMENTS_LIMIT = 3;

然后在 sidebarQueries 函数中,把原来的 .limit(10) 改为:

.limit(RECENT_POSTS_LIMIT),

和

.limit(RECENT_COMMENTS_LIMIT),

以后想改数量,只需改文件顶部那两个常量即可。

四、改完要做的

  1. 保存 src/lib/sidebar.ts 和 Archive.astro
  2. 推送到 GitHub
  3. 等 Cloudflare Pages 构建完成
  4. 去 Typecho 后台改一下站点标题再改回来,触发缓存失效
  5. 刷新页面,侧边栏的「归档」块就消失了

五、最终效果

  • 首页侧边栏:最新文章、最近回复、分类、其它
  • 归档页侧边栏:最新文章、最近回复、分类、其它
  • 分类页侧边栏:最新文章、最近回复、分类、其它
  • 不再出现会 404 的「归档」链接
  • 最新文章 5 条,最近回复 3 条

标签: 主题

添加新评论