该功能通过添加一个posts_where过滤器来完成:
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-60 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts($query_string);
?>
默认是60天内的文章,可更根据需要调整。
将代码添加到主循环的上面。
项目中的具体代码如下:
<?php
// 查询多少天内的文章
if (isset($_GET['arttime'])) {
function filter_where($where = '') {
$arttime = $_GET['arttime'];
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-' . $arttime . 'days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
}
$paged = 1;
if (get_query_var('page')) {
$paged = get_query_var('page');
}
$term = get_queried_object();
query_posts(array(
'category_name' => $term->slug, // 分类slug
'posts_per_page' => 10, // 每页几条
'paged' => $paged, // 当前是第几页
));
while (have_posts()) :
the_post();
?>
<a href="<?php the_permalink() ?>" class="news-item">
<div class="left-newlist-left">
<span> <?php single_cat_title() ?> <i></i><?php echo get_the_date('Y-m-d'); ?></span>
<h1><?php the_title() ?></h1>
</div>
<div class="right-newlist-img">
<img src="<?php echo catch_that_image(); ?>" alt="">
</div>
</a>
<?php endwhile; ?>