web-dev-qa-db-ja.com

人気の投稿クエリをリセットしますか?

私は以下のコードを使ってほとんどの既読記事を表示しています。非常に古い記事が最初に表示されるため、記事の存続期間はかかると思います。毎週それをリセットするにはどうすればいいですか。

私のfunction.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
mad2kx

resetting毎週月曜日の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つのことができることは1日の間それがまだ今週のためのビューを数えている間、先週からの人気のある記事を示し続けるであろうように質問を変えることである:

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