ブログの投稿をランク付けしてくれるサービス「PostRank」のリストを表示するWordPressプラグインを作ってみました。Javascriptの公式ウィジェットもあるのですが、表示をカスタマイズしたいとか、表示条件をもちょっと細かく指定したい場合にどうぞ。
ブログに最近の人気記事を表示する良い方法はないかなぁ、と探していて「PostRank」というサービスを見つけました。
PostRankは、平たくいうと、twitterやdelicious、tumblrなどのソーシャルなウェブサービスを観測して、そのブログのポストが人からどれくらい関心を持たれているかをランク付けするサービスです。
海外のサービスなので、今のところ、日本であメジャーなソーシャルブックマークサービスのはてブ(はてなブックマーク)は観測対象に入っていません。一方で、日本ではあまりなじみのないサービスの名前がリストにあったりします。まあ、それはそれで面白いかと思います。
で、その「PostRank」で自分のブログのTopRank(最近の人気記事的な?)を表示するウィジェットが配布されていたので試してみたのですが、デザインのカスタマイズも限られていて、何よりも、表示されるポストがランク1ばかりで(ランク10まである)、見ていても何も面白くない。。(いやまぁ面白い記事書けば良いんでしょうけれども。)
「icoroの記事は世の中的に見ればランク1ばかりかorz」と思ったのですが、調べてみるとどうもそう言うわけでもないようで。また、APIを使うと表示するリストもちょっと変えられるみたいだったので、PostRankを表示するプラグインにしてしまいました。
icoroのサイドバーにちょっと前から表示しているのはこのプラグインを作ってしまいました。
使い方
基本的にはプラグインディレクトリにアップして、管理画面でインストールして、PostRankのリストを表示したい所に以下のコードを貼り付けるだけで機能します。
<?php postrank_feed(); ?>
もしくは、アンインストールしてもテーマに影響が出ないように以下のようにする方が良いかも。
<?php if(function_exists('postrank_feed')){ ?>
<?php postrank_feed(); ?>
<?php } ?>
プラグインが読み込まれている(正確に言うと postrank_feed と言う関数が存在する)場合にのみ、関数を実行するようになっています。これでPostRank Feedを不意にアンインストールしちゃったときも安心です。
あと、管理画面とかないです。
ダウンロード
設定の変更など
出力する投稿の本数を変えたい場合は、postrank-feed.php 35行目にある num_posts の値を変更して下さい。デフォルトでは10になっています。
出力するhtmlを変えたい場合は、postrank-feed.php の104行目以降にある generate_html 関数の中身を書き換えて下さい。
85行目から88行目にある$urlを切り替えることで、取得するデータの中身を変えることが出来ます。
クエリを変えると表示が変わることは分かるのですが、具体的にどう変わっているのかは、自分もよく分かってません。。
//$url = 'http://api.postrank.com/v2/feed/' . $this->config['hash'] . '/topposts?';
//$url = 'http://api.postrank.com/v2/feed/' . $this->config['hash'] . '/topposts?' . 'level=good&';
//$url = 'http://api.postrank.com/v2/feed/' . $this->config['hash'] . '?';
$url = 'http://api.postrank.com/v2/feed/' . $this->config['hash'] . '?' . 'level=good&';
1番基本になるのが3番目のものと思われます。単純にブログのフィードにランクを付けたものが帰ってきます。
4番目はlevelにgoodを指定したものです。levelは all, good, great, bestの4種類、または数字で指定することが出来ます。例えば、「level=2」とするとPostRankが2以下のものは表示されなくなります。
1番目は topposts と言うクエリを付け加えたものです。これはPostRankで配布されているウィジェットと同じ結果が帰ってきます。「topposts」というクエリが入っていると、ランク順に並び替えたものが返ってくるようです。入っていないとfeedの順通り。
2番目は1番目にlevelを付け加えたものです。
より詳しい内容については、PostRankが公開しているAPIを見て下さい。
英語ですが、そんな大したことは書いてないです。というか、書いてあることが分からないと言うことはないけれども、そこんところ実際どうなるの?というのが分からない部分が多々ある、と言う感じです。まあ、いろいろ試してみて、一番具合が良い設定を探してみて下さい。。
参考
追記
2010/05/21
キャッシュの時間が短かったので、修正してファイルを差し替えました。