北极寒流 » 网络资源 » wordpress按文章修改时间排列 - 2015.08.12

wordpress按文章修改时间排列

有时候需要让wordpress的文章按修改时间排列,例如一些软件类网站,经常要更新下载地址,但又没必要重新发布一篇文章,这时候如果能让文章以更新时间排列,就能让用户很清楚明了的看见最近更新过的文章了。

1、根据orderby的值不同,可以让文章按照很多种方式进行排序,下面是列举几个常见的值及其对应的排序方式:

title:按标题;

date:按发布日期;

modified:按修改时间;

ID:按文章ID;

rand:随机排序;

comment_count:按评论数

2、如果你同时想修改标签页、分类页等存档页面的文章排列顺序的话,同样可以按照上面的方法修改主题目录下的archive.php等。

下面是修改博客按更新日期排序的方法

1、打开WordPress当前主题目录,打开“index.php”,搜索代码:

<?php

while ( have_posts() ) : the_post(); ?>

2、在“while”的前面插入下面几行代码(不是替换):

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$args = array(

'orderby' => modified,

'showposts' => 10,

'paged' => $paged

);

query_posts($args);

3、继续搜索:

<?php endwhile;?>

4、将其完整替换为:

<?php endwhile; wp_reset_query();?>

保存,(上传更新文件)刷新,大功告成!

如果希望在后台的文章也按更新时间排列那么你在当前主题的functions.php中添加以下php代码即可(代码来自ludou博客):

function ludou_set_post_order_in_admin( $wp_query ) {
if ( is_admin() ) {
$wp_query->set( 'orderby', 'modified' );
// 此处是将最新修改的文章排在前面
// 如果要将最新修改的文章排在后面,可将DESC改成ASC
$wp_query->set( 'order', 'DESC' );
}
}
add_filter('pre_get_posts', 'ludou_set_post_order_in_admin' );

如果你想在侧边栏加上按修改时间排列的文章列,那么把下面的函数代码扔到主题的 functions.php(加了2个参数:$num - 展示数量,$days - 几天内的新文章除外)

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'); // 新发表文章/修改文章时触发更新

调用,如在侧边栏

<h3>Recently Updated Posts</h3>
<ul>
<?php if ( function_exists('recently_updated_posts') ) recently_updated_posts(8,15); ?>
</ul>

参数说明:8 为展示文章数量,15 指15天内发表的文章除外

12

wordpress按文章修改时间排列

分享到:

最受欢迎的