我的博客有的文章需要不定期的更新(如WordPress主题更新、游戏资源更新),但是更新后访客不知道,访客也总不能几十页几十页去翻查有木有更新,所以我在主题 zwwooooo 版本2 上线时在侧边栏加上:Recently Updated Posts 了,中文就是:最近更新过的文章
我觉得很多博客可能也需要这类功能,特别是那些不断更新的共享类文章,因为这类文章无需一个版本就发布一篇文章。
我写成函数了,加了2个参数:$num - 展示数量,$days - 几天内的新文章除外
另外我加了数据库缓存方式,因为考虑到查询量,所以在你修改文章/删除文章/发表文章时才会更新缓存。
下面是方法和代码
1. 把下面的函数代码扔到主题的 functions.php
// Recently Updated Posts by zwwooooo | zww.me function recently_updated_posts($num=10,$days=7) { if( !$recently_updated_posts = get_option('recently_updated_posts') ) { query_posts('post_status=publish&orderby=modified&posts_per_page=-1'); $i=0; while ( have_posts() && $i<$num ) : the_post(); if (current_time('timestamp') - get_the_time('U') > 60*60*24*$days) { $i++; $the_title_value=get_the_title(); $recently_updated_posts.='<li><a href="'.get_permalink().'" title="'.$the_title_value.'">' .$the_title_value.'</a><span class="updatetime"><br />» 修改时间: ' .get_the_modified_time('Y.m.d G:i').'</span></li>'; } endwhile; wp_reset_query(); if ( !empty($recently_updated_posts) ) update_option('recently_updated_posts', $recently_updated_posts); } $recently_updated_posts=($recently_updated_posts == '') ? '<li>None data.</li>' : $recently_updated_posts; echo $recently_updated_posts; } function clear_cache_zww() { update_option('recently_updated_posts', ''); // 清空 recently_updated_posts } add_action('save_post', 'clear_cache_zww'); // 新发表文章/修改文章时触发更新
2. 调用,如在侧边栏
<h3>Recently Updated Posts</h3> <ul> <?php if ( function_exists('recently_updated_posts') ) recently_updated_posts(8,15); ?> </ul>
参数说明:8 为展示文章数量,15 指15天内发表的文章除外
就这样,有需要的朋友可以试试。
声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25487

嗯~ 我喜欢这个
文章标题的效果貌似没之前好了 有锯齿呢
@whisperer
不是锯齿吧,多了一个白边。
加到侧边不如把首页第一篇文章改成随机以前的文章
@Dianso
其实……第一篇我习惯最新的
这个功能不错
如果可以随机显示更好呢
@浩子
随机?怎样随机法?随机文章很简单,早就有相关代码
老文章很少会去更新吧。
@吵吵
看你的文章类型了,如果只是写写生活当然不必更新
还是蛮实用的说~~~
收藏了,可能某些站点可以用到~
@刘印博客
嗯,看文章类型
这个功能实用呢
最近更新过的文章
这个还挺实用
尤其是对于那些频繁更新资源的。
@园子
对,就是因此而生的
这个好,特别适合一些软件站的软件更新
@Simon
软件站更需要了,其实不需要一个版本就一篇文章
@zwwooooo
对啊,出新版本就发新文章用户都会被弄混了
嗯,这个很有必要的~~
博主,你这个解出来没- -!!
原作,看不懂啊!!! 地址在wed那里..
求解啊!!!!!!!!!
@zwuu
请教原作者吧,我说不明白原理。
这个方法还是不错的,看看能不能移植
@sprityaoyao
移植到哪?
马上去测试下
函数我加了,但是边栏我只会小工具,不会修改文件,怎么办啊?
@囧啊囧
修改sidebar.php
很不错的功能,支持大叔
不好意思,再來請教一個問題,我發現我安裝後顯這裡顯示的不一樣。
我的會像下面這樣,中間多了一行,感覺好怪!
zBench WordPress Theme
» 修改时间: 2011.07.24 0:02
@Punkhippie
就是 zBench WordPress Theme 和 » 修改时间: 2011.07.24 0:02 中間多了一行 分隔了
@Punkhippie
哦,我的也多了一行空格
@Punkhippie
你把
拿掉就行了
@smilebull
去掉代码里面的
@zwwooooo
試過了..就是不行才來留言的..@@
@Punkhippie
那就要注意你所用主题的css了,用firebug看看是什么影响了
这个东西用同步的话,就可以在微博上同步出来了,也等于提醒了。
@郑永
很多人不用微博的。
其实更新文章后,可以顺便把发表日期也给更新了。呵呵。。。
@求索阁
那就失去意义了,干脆用最新文章吧
这个很有用,只是我直接加到侧栏评、新、热、档、签里面有些杯具,单独用就正常,可能我用法不对吧
@smilebull
你把這裡面的
“znos-links”這個class去掉
@zwwooooo
灰常感谢!
哈哈哈,发现你了~~这个博客真的很不错啊!!!
请问:前面是($num=10,$days=7)
调用是 recently_updated_posts(8,15); ?>
好象是调用处不起作用,不知原因?
@DaoFa
注意,这个带有缓存的,就是你文章更新了才会更新数据的。
你好,我使用这个代码后,在侧边能显示出来更新了的文章,但是无法点击...请帮我看看侧栏的最新文章
@276080758
不太可能吧,生出来的是带链接的文章名,检查一下a标签的链接地址有木有吧
刚才看了下,结果把代码贴错了. 现在好了:mrgreen:
还有,为什么置顶的文章一直在显示列表的最上面啊?
@276080758
因为默认就是这样,写这代码时没考虑置顶文章,你可以给query_posts加多个参数:ignore_sticky_posts=1
@zwwooooo
OK了,感谢博主.
这个功能好实用啊!!!学习了!