Jetpack のみで人気TOP10を表示する

2013.04.13【 ネット・パソコン
これについては日本語の情報がほとんどなかったので誰かのお役に立つかもしれないと思い、記しておきます。

JetpackWordPress.com Popular Posts で人気記事の表示ができることは昨日の記事にて書きました。カテゴリ別では不具合がありますが総合だったら問題なしです。
が、総合だけでいいならわざわざ WordPress.com Popular Posts を入れなくても表示できます。もちろん Jetpack のアクセス解析は入れてないと( WordPress.com に登録してないと)できません。その方法は検索してください。

Jetpack の解析はかなり簡易なものなのでアクセス解析を主として見たら物足りないかもしれません。OSやブラウザなどの閲覧環境データがないのでその辺りの情報もキャッチしたいなら別途、きちんとした解析を入れるほうがいいのではないかと。ですが、どのリンクがクリックされたか分かるのは便利です。今日はどのページが見られているか、ここ1ヶ月の検索キーワードはどんなものか、を見るくらいでいいならOKでしょうかね。
あと、自分のブログがあるサーバではなく WordPress.com のサーバにデータが蓄積されるとのことで、そのサーバが重いとこっちまで表示が遅くなるわけで。そこがちょっとだけ気掛かりです。これは使ってみてチェックするしかありません。私が使った半月ほどの間では特にブログが重くなるようなことはありませんでしたが。Google系のパーツの方がよっぽど重い様に感じます。

以下、サイドバーに表示させてみてうまくいったものです。
まずはWeb Development Blog の記事。このコードならトップページや固定ページなどが入らず個別記事のみ表示されます。

<?php
echo '<ol>';
$max = 10;
$top_posts = stats_get_csv('postviews', "days=-1&limit=12");
foreach($top_posts as $post) {
$post_obj = get_post($post['post_id']);
if (isset($post_obj) && $post_obj->post_type == 'post' && $cnt < $max) {
echo '
<li><a href="'.get_permalink( $post_obj->ID ).'">'.$post_obj->post_title.'</a></li>';
$cnt++;
}
}
echo '
</ol>';
?>

$max = 10;

&limit=12
の2つの記事数制御がありますが、実際に表示する記事数は $max で、 limit の方は表示前にチェックする記事数だと私は認識しています。少し余分にピックアップしておいて個別記事だけ上から抜き出す形です。パラメータについてはこちら

当ブログの場合だとトップ10の中にトップページと自己紹介が入っており、それは表示から除外されますので max と limit のどちらも10にしたら8件しか表示されません。固定ページが5ページあるなら limit は max+5以上にした方がいいと思います。

こちらのコードはトップページは表示されませんが固定ページは表示されます。ワードプレスをマルチサイト化しているなど固定ページも対象にしたい場合はこちらが便利かと思います。

<?php
if ( function_exists('stats_get_csv') && $top_posts = stats_get_csv('postviews', 'days=14&limit=10')) {
echo '<ol>';
foreach ( $top_posts as $post ) {
if($post['post_id'] && get_post($post['post_id']))
echo '<li><a href=”' . get_permalink( $post['post_id'] ) . '”>' .
get_the_title( $post['post_id'] ) . '</a></li>';
}
echo '</ol>';
}
?>


Jetpack のアクセス解析は、先にも書きましたが、項目は簡易ではありますが正確で結構便利です。データは WordPress.com サーバに保存されますからデータベースの負荷はありません。OSやブラウザの情報がなくてもいいなら Jetpack のみでいいのでは。
そして総合の人気記事でいいならプラグインも要りません(正しく反映されているかどうかは自分で確認してください)。
もっと詳しい解析データを取りつつ総合ランキング表示したいなら WP slimstat+WP slimstat shortcode の組み合わせをお勧めします。軽快な動きですよ。

上記のような Jetpack のコードについては stats_get_csv で検索すると色々出てきますよ。ただしこのコードだとトップページも表示されてしまいますのでご注意を。

念のため、もしコードをコピペするならリンク先の元コードをコピペしてください。半角で表示されるようチェックしたつもりですがもしかしたら見落としがあって全角になっているかもしれませんので(そうすると動きません)。

関連記事

同カテゴリでよく読まれている記事