原创WordPress主题教程#1:最近修改文章

最近做了一个新的主题,使用Bootstrap3和FontAwesome框架搭建的博客,新主题将在不久上线,考虑到这个前端博客主题使用了差不多一年多的时间,其中的一些技术还是比较高级的,所以在此分享给喜欢折腾的朋友。

如果你对我的Wordpress主题感兴趣,可以去下载我的个人作品一些免费主题:Started、FourYears、FlatBox。

第一部分代码便是:Wordpress最新修改文章,去看看实际演示效果recent-update

为什么需要这个功能呢?由于前端开发技术文章经常变化,各种hack随着时间和认识的加深也会需要改变,这时候你过去的文章可能不适合,那么这个时候你就需要修改了。修改了之后按照Wordpress文章是根据发表时间来输出的,那么新修改的文章别人就可能看不到了,这个时候你可以通过Wordpress函数来输出这部分更新的文章。代码来自Zww.me如下:

// 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&offset=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><i class="updatetime">'
.get_the_modified_time('m.d').'</i></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'); // 新发表文章/修改文章时触发更新

在需要插入代码的地方添加下面的语句:

<?php if ( function_exists('recently_updated_posts') ) recently_updated_posts(5,15); ?>

此代码在使用缓存下面好像无效。

第二种方式是来自wpbeginner,把下面代码放到function.PHP里面。

function wpb_lastupdated_posts() { 
// Query Arguments
$lastupdated_args = array(
'orderby' => 'modified',
'ignore_sticky_posts' => '1'
);

//Loop to display 5 recently updated posts
$lastupdated_loop = new WP_Query( $lastupdated_args );
$counter = 1;
echo '<ul>';
while( $lastupdated_loop->have_posts() && $counter < 5 ) : $lastupdated_loop->the_post();
echo '<li><a href="' . get_permalink( $lastupdated_loop->post->ID ) . '"> ' .get_the_title( $lastupdated_loop->post->ID ) . '</a> ( '. get_the_modified_date() .') </li>';
$counter++;
endwhile; 
echo '</ul>';
wp_reset_postdata(); 
} 
//add a shortcode
add_shortcode('lastupdated-posts', 'wpb_lastupdated_posts');

在需要的地方调用下面代码:

<?php 
if (function_exists(wpb_lastupdated_posts)) : 
wpb_lastupdated_posts();
endif;
?>

在线演示

原文链接:原创WordPress主题教程#1:最近修改文章 版权所有,转载时请注明出处,违者必究。
注明出处格式:前端开发博客 (http://caibaojian.com/wordpress-recent-update-posts-2.html)

发表评论

请登录后发表评论: