最新更新的文章(最新修改过的)

我觉得很多博客可能也需要这类功能,特别是那些不断更新的共享类文章,因为这类文章无需一个版本就发布一篇文章。
我写成函数了,加了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><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天内发表的文章除外
演示:http://www.11ing.com/ 左下角的最新文章

无相关内容.

发表评论