显示过去24小时内的帖子,并根据大多数视图对它们进行排序

时间:2012-10-19 作者:pervez

我试图显示过去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.\' বার\';
}

1 个回复
最合适的回答,由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. 这不管用?

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post