プラグイン WP-PostViews が使えるかもしれないですね。
プラグインのFAQページを見たところ、関数 query_posts
を使ってアクセス数の順にソートした投稿を取り出せるそうですので、その検索条件に投稿者や期間指定を加えればよいのではないかと思います。アクセス数そのものはカスタムフィールド('meta_key' => 'views'
)に入るみたいです。
http://wordpress.org/plugins/wp-postviews/faq/
To Sort Most/Least Viewed Posts
- You can use:
<?php query_posts( array( 'meta_key' => 'views', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ); ?>
- Or pass in the variables to the URL:
http://yoursite.com/?v_sortby=views&v_orderby=desc
- You can replace
DESC
with ASC
if you want the least viewed posts.
別解です。Jetpack by WordPress.com を使うと stats 情報が得られます。インストール、有効化、WordPress.com と連動の設定を済ませると、stats 情報が得られます。jetpack/modules/stats.php で定義されている stats_get_csv() 関数を単独で使うこともできて、
$stats_data = stats_get_csv('postviews', array('days' => 30, 'limit' => -1));
のように使います。limit を -1 にすると、前件取得です。戻り値は、
Array
(
[0] => Array
(
[post_id] => 1
[post_title] => Hello World!
[post_permalink] => http://example.com/hello-world
[views] => 100
)
[1] => Array
(
...
)
)
のような配列データが得られます。ここまでわかれば、あとは ちょっと hack して、ユーザ毎に views を加算すればよいのではないでしょうか。