2016-05-09 11 views
1

ユーザーが投稿を訪問するたびに、その投稿の1つのカスタムフィールド訪問カウンターフィールドに+1を追加するだけのトリガー機能があります。今週の最も訪問された投稿を取得するには?

これは、new WP_Query()のメタ値を使用して、最も多く訪問した投稿を簡単に取得できることを意味しますが、私の人生にとっては、最も訪問された投稿のみ最後のX日。

各投稿のカスタムフィールドを1つだけ増やしているので、日付などの参照がないことを理解していますが、それを実現する良いコーディングソリューションは想像できません。

カスタムフィールドが過去7日間に何回変更されたかを判断するWordPressの方法はありますか?

答えて

3

解決策は、1日あたりのカウンタを持つことです。

今日のカウンターがあるとします。それは09052016とし、もう1つは10052016と呼ばれます。その後、過去7日間のビューを取得するには、最後の7日間のカウンタを使用してそれらを追加します。

これらを徐々に名前を付けるほうが簡単なので、000001000002000003などがあります。

これにより、000182と前の6つのカウンターを言うことができるPHP関数を書くのがはるかに簡単になります。

過去7日間のトップ記事をランク付けすることも、値の値を算出することで可能になります:

​​

私は、これが最も効率的なソリューションであるかどうかを確認していません。

1日あたりのカウンタと1週間あたりのカウンタを持つこともできます.1日後に6日後のビューの量が減算されます。

+0

ああ、非常に興味深い。この方法を試してみて、私はこれは間違いなく良いアイデアだと思います!関数では、私はそれがクエリを容易にするために最後の7日間のカウントを別のカスタムフィールドを追加すると思います – user3245789

+0

これについては、行く方法のように聞こえる。あなたのプロジェクトに幸運。私は助けることができてうれしいです。 :) –

3

..

<?php 
query_posts(array('meta_key' => 'views', 'orderby' => 'meta_value_num', 'order' => 'DESC','showposts' => '6', 'w' => '. date("W", current_time("timestamp"))')); 
while(have_posts()) : the_post();?> 
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li> 
<?php endwhile;wp_reset_query(); 
?> 
+0

先週公開された最高のmeta_key(ビュー)を持つ投稿を取得できないので、これが正しいかどうかはわかりません。 – user3245789

+0

そのコードは週に最も人気のある(訪問した)投稿を表示します。 –

+0

あなたはクエリのポスト配列を変更することができます 'w' => 'を単に削除します。 ( 'W'、current_time( "timestamp"))を 'year' => date( 'Y')、 'w' => date( 'W')に置き換えます。今週の最もポストされたポストを得ることができます –

関連する問題