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

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
Y
Y Combinator Blog
V
V2EX
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
博客园 - 叶小钗
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
B
Blog
G
Google Developers Blog
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
IT之家
IT之家
N
Netflix TechBlog - Medium
腾讯CDC

winegrower | 种葡萄并酿酒的人 - 网络娱乐

漫步足迹功能 - winegrower 修改博客主题 - winegrower 最近在折腾电脑 - winegrower | 种葡萄并酿酒的人 永久的博客 - winegrower | 种葡萄并酿酒的人 折腾10年前的网站 - winegrower | 种葡萄并酿酒的人 Less is more - winegrower 终于“胖”了 - winegrower | 种葡萄并酿酒的人 【WeCenter二次开发】问题、文章和活动使用不一样的分类 - winegrower | 种葡萄并酿酒的人 WeCenter 程序站内及站外调用功能 - winegrower | 种葡萄并酿酒的人 typecho博客文章按发布时间倒序排列 - winegrower | 种葡萄并酿酒的人 网站bug修复 - winegrower | 种葡萄并酿酒的人 网络社区 - winegrower | 种葡萄并酿酒的人
归档页面调整 - winegrower
winegrower · 2026-07-11 · via winegrower | 种葡萄并酿酒的人 - 网络娱乐

今天调整了 归档页面,正常归档页面 archive 都是每页显示 固定数量的文章,这样的话每个页面可能会包含的多个年份的文章,或者一个年份的文章分布在不同页面。

因为我的博客是个人博客,而且从2008年开始,几乎每年都会写文章,如果archive 页面不管一年有多少文章,按年份显示,这样更方便查阅自己的过去。

实现原理总结

目标
将归档页面从「每页显示 N 篇文章」改为「每页显示一整年的所有文章」,即 page=1 对应最近一年,page=2 对应次近一年,以此类推。
关键改动

  1. 数据获取方式不变,但处理逻辑重写
    之前是:取全部文章 → 按文章数量分页(每页 20 篇)→ 循环输出,遇到不同年份就插一个年份标题。
    现在是:取全部文章 → 按年份分组存入数组 → 年份去重并倒序排列 → page=N 映射到第 N 个年份 → 输出该年的所有文章。
  2. 核心数据结构

// 两层结构:年份 → 该年的文章列表

$postsByYear['2026'] = [
    ['permalink' => '...', 'title' => '文章名', 'created' => 1234567890],
      ...
  ];
  $postsByYear['2025'] = [
      ...
  ];

// 独立的年份数组(去重+按从新到旧排序)

$yearOrder = ['2026', '2025', '2024', ...];
  1. 年份映射公式
    ┌────────┬──────────────────────────┐
    │ 页码 │ 对应年份 │
    ├────────┼──────────────────────────┤
    │ page=1 │ $yearOrder[0] → 最新年份 │
    ├────────┼──────────────────────────┤
    │ page=2 │ $yearOrder[1] → 次新年份 │
    ├────────┼──────────────────────────┤
    │ page=N │ $yearOrder[N-1] │
    └────────┴──────────────────────────┘
    这样每一页就是完整的一年,年份数量就是总页数。

最后更新于 2026-07-11