给 Typecho 博客添加QQ空间“那年今日”功能

2022年03月25日 · 昆明

Xiri.jpg


两年多前,给博客添加了「昔日」功能,类似于 QQ 空间的「那年今日」。对于当时使用QQ空间的用户来说,「那年今日」是一项没有得到完善就草率上线的新功能,是备受争议的:

有人认为自己的隐私,甚至已经删除的黑历史,在不经许可的情况下,被强制展现出来,被冒犯了。 

有人觉得也挺有趣的,能够重温过往的小感动,看到逗比矫情的自己,与今时今日对比,在成长着。

在用户褒贬不一的使用反馈下,「那年今日」在升级中有了更多的「自主选择权」……

回到 Typecho,与博客常用的随机文章、相关推荐功能不同,「昔日」是通过时间维度,把每年相同月日所发布的文章串联起来。


思路
1、使用博客现有的功能让操作简单化。

2、每篇文章需要一个具有共性的标记,如分类、标签、自定义字段或者内容等。

3、这个标记能便捷添加在每篇文章中。

4、具有共性标记的文章,最终通过(archive)页面,使用「搜索」的方式呈现出来。

这么分析对比下来,如果使用标签(tags)作为每篇文章的共性标记,就会产生 365 个日期标签,显得冗长;如果使用自定义字段(fields),现有的博客搜索功能又无法对其起作用,除非修改核心代码,新增搜索范围。

嗯,只能使用比较绕的方法:在每篇文章内容中添加时间关键词,即以上提到的「共性标记」。


方法

1、在每篇文章中,根据不同的发布时间,添加统一的日期格式。为了美观,可以使用 CSS 将其隐藏。

日期格式:

其中,Mar 代表「三月」,25 代表「25日」。逢个位「日」时,用零补上,如:Mar05

2、在文章页 post.php 中,根据喜好位置添加链接 a 标签代码,跳转至搜索呈现页面(archive):

<a href="<?php $this->options->siteUrl(); ?>search/<?php $this->date('Md'); ?>/">昔日</a>

如果博客链接带有 index.php 则使用以下代码

<a href="<?php $this->options->index(); ?>search/<?php $this->date('Md'); ?>/">昔日</a>

演示

博客内任意一篇文章页翻篇处的「昔日」。


后记

博客中的「昔日」(那年今日)功能,已替换使用更为便捷的方式实现:不需要像以上提到的,在每篇文章中添加统一的日期格式,只要一次性改造搜索页面即可实现。

电邮 lopwon@qq.com 付费改造。

  1. 棒!

  2. 你提供的方法搜不到内容呀,是不是关键代码你没有放出来。

    1. @小王先森

      已回复邮件。

  3. 这个月份不能是完整的单词吗?

    1. @子午

      可以,要修改对应日期格式date('M d')

  4. 一年不会,10年今日发的难说就是黑历史

    1. @Duo

      比如你的。

  5. 这个功能wp很久以前就有了。

    1. @S

      Typecho使用的人比较少,功能和模板也没有WP那么强大。

  6. QQ空间充满了青葱岁月。

    1. @青山

      也成了很多人丢荒的自留地。

视频:文昌,肉眼跟踪正常
1658643720
视频:文昌,肉眼跟踪正常
故事原本说的不是他,而是她!
1374919200
故事原本说的不是他,而是她!
四川木里县邛引村:高原坝子!
1349344860
四川木里县邛引村:高原坝子!
有声:晨光下的啪啪啪
1541239200
有声:晨光下的啪啪啪
37,清明
1554426000
37,清明
2 37,小暑
1562461200
37,小暑
41,冬至
1671681600
41,冬至
store