免插件生成文章存档页面[飞速版]——2011-09-16更新


2011-09-16 updated:
增加缓存控制,在首次访问时生成缓存并保存在数据库中,不用每次访问都要查询M遍数据库并经过N次for循环最终生成归档。
效率和速度对比:
之前的版本
可看到内存使用峰值为38.25 MiB,SQL查询次数为1463次,PHP执行耗时2.560秒

优化后的版本
可看到内存使用峰值为28.29 MiB,SQL查询次数为83次,PHP执行耗时0.404秒

二者的数据一对比你就知道啦 :twisted:

PS:目前这个页面模板是我用过的greenthewebnews主题的,如用在你当前的主题不好看,你只需对比你的主题的page.php文件做少量修改即可。


以下内容于 2010年07月10日 发布:



话说那天在此童鞋的博客留言本上看到有人问及他的“网站地图”功能是怎么实现D,偶看到此童鞋笑而不答。这引起了偶的注意,淫荡地笑了下,发现问题啦(底部的JS代码露出了马脚( :mrgreen: 淫笑中) ),于是有了此文。

http://wange.im/sitemap
其实万童鞋这个网站地图 并不是地图啦,只是一个文章存档而已。今天我也弄了个差不多的东东,我就老实多啦,取名”存档“。呵呵。大家喜欢的把代码拿去吧。
看下我这里的效果:http://www.ihacklog.com/sitearchives

如果你的博客没有加载JQuery 库,请自行添加代码搞定。(这个不用说了吧?)

说明:

此代码部分参考了Viper007Bond童鞋的插件Clean Archives Reloade 。不过我这个应该运行时效率稍高一些,主要是对其GetPosts()这个函数做了相应的修改。在此感谢Viper007Bond童鞋一下。

此方法与插件法相比的优点:
1,纯绿色,不写入任何东东到数据库
2,按需调用。无需全站加载,只在访问存档页时调用。
3,与插件一样,可配置。(配置方法见下面)

使用方法,将hacklog-clean-archives.php上传至当前主题目录下面,然后在后台新建一页面,名字随意,模板选择 hacklog-clean-archives ,内容可写可不写。
页面内容如果要写,则必须按以下格式,因为这里页面内容实际上是用来控制这个存档的显示的。

1
2
3
4
5
usejs=1;
monthorder=old;
postorder=old;
postcount=1;
commentcount=1;

解释下,这里usejs表示使用JQ折叠显示 ,这个Javascript存档折叠显示效果相当酷的。 :mrgreen: 为1开启,设为0关闭。
monthorder (存档月份排序) :
new 【按时间倒叙排列月份(离现在最近的月份排最前)】
old 【按时间正序排列月份(离现在最远的月份排最前)】
postorder (存档文章排序):
new 【将最新的日志显示在第一位】
old 【将最旧的日志显示在第一位】
postcount:是否显示每月的文章数
0 :不显示
1 :显示
commentcount :是否显示文章评论数
0 :不显示
1 :显示

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:

随机日志

回复 (45)

发表评论 修改评论取消编辑

允许使用的标签 - 您可以在评论中使用如下的 HTML 标签以及属性。

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

引用通告 (1)

  1. 10:34 下午, 2011年11月23日Favicon of zifeiwo.net归档页(archives)无插件实现 | 子非我
开灯