我试图显示过去24小时的帖子,并按大多数视图排序。
我将此代码称为大多数视图:
query_posts(\'meta_key=post_views_count&orderby=meta_value_num&posts_per_page=7\');
if (have_posts()) :
while (have_posts()) :
the_post();?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile;
endif;
wp_reset_query();
如何添加过滤器或查询以显示最近24小时的最多视图帖子(新帖子)?
更新时间:
以下是我的后期查看计数代码:
// function to count post views.
function setPostViews($postID) {
$count_key = \'views\';
$count = get_post_meta($postID, $count_key, true);
if($count==\'\'){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, \'0\');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
// function to display number of post views.
function the_views($postID){
$count_key = \'views\';
$count = get_post_meta($postID, $count_key, true);
if($count==\'\'){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, \'0\');
return "0 View";
}
return $count.\' বার\';
}
最合适的回答,由SO网友:s_ha_dum 整理而成
根据更新后的代码,回答您的问题:“如何添加过滤器或查询以显示过去24小时最多的视图帖子(新帖子)就是你不能那样做。您的代码根本没有跟踪时间。如果你不跟踪帖子浏览的时间,就无法调出“最近24小时”。
您需要添加另一个meta_key/meta_value
每个帖子视图都有时间戳,或者至少是最近的视图。如果你写了上面的代码,你应该能够做到这一点。如果你从某处抄袭它。。。嗯,我可以发布一些东西。
Edit:
看来你实际上是在寻找过去24小时内发表的文章中浏览次数最多的文章。您在下面的评论中发布了一个过滤器。
function filter_where($where = \'\') {
$where .= " AND post_date > \'" . date(\'Y-m-d H:i:s\', strtotime(\'-24 hours\')) . "\'";
return $where;
}
add_filter(\'posts_where\', \'filter_where\');
这与
Codex sample function for filtering by a date range. 这不管用?