2011年07月27日 121条评论

给老文章一个机会: Recently Updated Posts

我的博客有的文章需要不定期的更新(如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 />&raquo; 修改时间: '
               .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天内发表的文章除外

就这样,有需要的朋友可以试试。

zww
or
oooo

“给老文章一个机会: Recently Updated Posts”有121条评论

  1. 前排学习,强大ing...

  2. reizhi says:

    感觉WP的文章管理机制不是很强,所以也懒得直接编辑老文章,直接开新的

    1. zwwooooo says:

      @reizhi
      看情况了,如果是大更新开新的比较好。

  3. Punkhippie says:

    好東西 這個我非常需要呢 :mrgreen:
    想請教一下如何在內文顯示更新時間呢?
    謝謝~

    1. zwwooooo says:

      @Punkhippie
      代码里面有了啊,get_the_modified_time('Y.m.d G:i')

  4. 陈连龙 says:

    这个做的不错

  5. 有点蓝 says:

    把下面的函数代码扔到主题的 functions.php。

    这句话最帅了,其威力不下于2000年前有人说: 今天闲得没事我把硬盘格了,顺便重装了下系统…… :mrgreen:

    1. zwwooooo says:

      @有点蓝
      哈哈,因为不管你懂不懂代码,扔进去就行了 :mrgreen:

    2. 有点蓝 says:

      @zwwooooo
      昨晚偶闲来无事,把style精简了一下,又缩小了0.54kb :mrgreen:

    3. zwwooooo says:

      @有点蓝
      今天偶闲来无事,把你这评论回复了 :mrgreen:

  6. IM路人 says:

    这个模块对某些技术性的博客或者提供资源共享的博客相当的实用~~

    1. zwwooooo says:

      @IM路人
      还是有点实用的

  7. 张扬扬 says:

    这招不错哈

  8. 这段代码很不错。。转载了。。谢谢

  9. 民工 says:

    WP 的小窗口自带了这个功能的吧

  10. 流年 says:

    这个对于共享软件或类似的博客还真的挺有用的

    1. zwwooooo says:

      @流年
      对啊,我有好几篇文章是持续更新的

  11. whisperer says:

    嗯~ 我喜欢这个

  12. whisperer says:

    文章标题的效果貌似没之前好了 有锯齿呢

    1. zwwooooo says:

      @whisperer
      不是锯齿吧,多了一个白边。

  13. Dianso says:

    加到侧边不如把首页第一篇文章改成随机以前的文章

    1. zwwooooo says:

      @Dianso
      其实……第一篇我习惯最新的

  14. 浩子 says:

    这个功能不错
    如果可以随机显示更好呢

    1. zwwooooo says:

      @浩子
      随机?怎样随机法?随机文章很简单,早就有相关代码

  15. 吵吵 says:

    老文章很少会去更新吧。

    1. zwwooooo says:

      @吵吵
      看你的文章类型了,如果只是写写生活当然不必更新

  16. 奶牛 says:

    还是蛮实用的说~~~

  17. 收藏了,可能某些站点可以用到~

    1. zwwooooo says:

      @刘印博客
      嗯,看文章类型

  18. schiy says:

    这个功能实用呢 :razz:

  19. 园子 says:

    最近更新过的文章
    这个还挺实用
    尤其是对于那些频繁更新资源的。

    1. zwwooooo says:

      @园子
      对,就是因此而生的

  20. Simon says:

    这个好,特别适合一些软件站的软件更新

    1. zwwooooo says:

      @Simon
      软件站更需要了,其实不需要一个版本就一篇文章

    2. Simon says:

      @zwwooooo
      对啊,出新版本就发新文章用户都会被弄混了

发表评论

昵称 *

网址

B em del U Link Code Quote