Reset Popular post query?

时间:2018-07-31 作者:mad2kx

我使用以下代码来显示大多数已读文章。我认为它需要文章的生命周期,因为它首先显示非常旧的文章。如何重置它-每周?

在我的功能中。php

function setPostViews($postID) {
    $countKey = \'post_views_count\';
    $count = get_post_meta($postID, $countKey, true);
    if($count==\'\'){
        $count = 0;
        delete_post_meta($postID, $countKey);
        add_post_meta($postID, $countKey, \'0\');
    }else{
        $count++;
        update_post_meta($postID, $countKey, $count);
    }
}
在我的页面中显示

<?php
                            query_posts (array (
                            \'posts_per_page\' => 5,
                            \'meta_key\' => \'post_views_count\',
                            \'orderby\' => \'meta_value_num\',
                            \'order\' => \'DESC\',
                            \'ignore_sticky_posts\' => true,
                            ));
                            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();
                            ?>

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

如果您可以每周重置it(如每周一从0开始查看),而不是试图显示过去7天中读取的最多的内容,那么最简单的更改就是为一年中的每个星期使用不同的元键。然后,当您查询帖子时,只需查询一年中当前一周的查看次数:

您只需更改以下内容即可完成此操作:

$countKey = \'post_views_count\';
对此:

$countKey = \'post_views_count_\' . date( \'YW\' );
date( \'YW\' ) 会给你一个数字201831, 代表2018年第31周,因此每周都会有自己的元密钥,如post_views_count_201831.

然后,在查询帖子时,更改:

\'meta_key\' => \'post_views_count\',
要为当前周使用元键,请执行以下操作:

\'meta_key\' => \'post_views_count_\' . date( \'YW\' ),
这确实意味着当一周结束时,你将暂时没有带视图的帖子,因为计数已经开始了。您可以做的一件事是更改查询,使其在1天内继续显示上周的热门帖子,同时仍计算本周的浏览量:

\'meta_key\' => \'post_views_count_\' . date( \'YW\', strtotime( \'-1 day\' ) ),

结束