トラックバックをGoogle PageRank順に並び替える:MTGooglePageRank  

Posted by
ぴろり
Posted at
2006/04/15 14:55
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
プラグイン
 Google の PageRank について見て回っていたところ、 最速インターフェース研究会の記事に
被リンクやトラックバックなんかをページランクでソートできたら面白いんじゃないかと思ってみたり。
 との発言が。 …と言うわけで早速、作ってみました。 として動作しますが、 サイトが PHP 化されている必要があります。

化=ダイナミックパブリッシング のことではありません。 ここでは各ページの拡張子が .php になっていれば問題ないと思います。

この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する

使用許諾条件など

MTGooglePageRank  new

ver.0.91, '06/04/15, 0bytes, 3.1x 以降+
  • db-update.cgi を地味バージョンアップ

最新版のやバグレポートはGooglePageRank の trac レポジトリでも行っています。

背景

  ではトラックバックを受信日時順で並び替えることしかできません。 しかし数あるトラックバック先の中から有用と思われるページを目立つように表示できれば、 ビジタが良い記事に巡りあうチャンスを少しでも増せるように思えます。 有用なが膨大なトラックバックのリストに埋もれてしまうのは勿体無いことです。
 ところで、 の人気の秘密にその精度の高さが挙げられます。 有用なを含むページが自然と結果の上位に表示されるようになっており、 これを実現する技術の一つに PageRank と呼ばれる仕組みがあります。 PageRank が高いページ=有用なページであるとは完全には言えないまでも、 やはりそれなりにページの有用性を測る尺度として活用できるのではないでしょうか。

 この PageRank を取得できる として、 drk7.jp で公開されている MTGooglePageRank があります。 しかし現状のところ、PageRank を取得する URL が固定されてしまうことと、 再構築のタイミングでしか PageRank が取得されないという点で上手く使えません。
 またトラックバックについて言えば、多くのブロガは、 記事を新規作成→公開するタイミングでトラックバックを送信するでしょうから、 公開されたばかりの記事 URL に対して PageRank を取得しようとしても意味がありません。

 そこで、今回、 を使用して PageRank を表示するを作ってみました。 ページが表示されるタイミングでキャッシュ済みの PageRank を表示し、それに基づいてを動的に並び替えることができます。 PageRank はキャッシュに保持しているので、表示のたびに に問い合わせる無駄を省いています。

キャッシュされた PageRank は意図したタイミングで最新のものに更新できます


動作の概要

PageRank の表示
 キャッシュファイルには URL と PageRank のリストが保存されています。 ページが表示される段階で、キャッシュファイルから指定された URL に対する PageRank を探します。 目的の URL がキャッシュファイルにあった場合、記録されている PageRank を表示します。
 目的の URL がキャッシュファイルになかった場合、次回の更新時に PageRank を取得するよう、 キャッシュファイルに URL を書き加えます。
PageRank の取得・更新
 URL に対する PageRank を取得・更新する別プログラム()が実行されると、 以下の順番でキャッシュファイルのリストの内容を更新します。
  1. PageRank 未取得の URL があった場合、 サーバに問合せを行い PageRank を取得します
  2. 以前に PageRank を取得してから、一定期間以上経過した URL について、 サーバに問合せを行い PageRank を更新します
 このプログラムを cron などを利用して、自動で実行されるようにしておくことで、 キャッシュファイル中の PageRank を最新に保つことができます。

導入方法

  1. アーカイブに含まれるファイルを全て、 plugins ディレクトリ以下にコピーします
  2. PageRank.pl をエディタで開き、 キャッシュファイルのパスを適切に書き換えます。
  3. db-update.cgi をエディタで開き、 キャッシュファイルのパスを適切に書き換えます。

    PageRank.pldb-update.cgi で指定するキャッシュファイルは、どちらも同じパスを指定してください

  4. db-update.cgi には実行権限(755 or 777)を与えておきます
  5. db-update.cgi は以下の モジュールを使用しています。 必要な場合は併せて導入してください。
 なお、動作確認は以下の環境で行っています。

の修正 〜 PageRank を表示するには

 任意の URL の PageRank を表示するには <MTGetPageRank> コンテナタグを使用します。 また <MTGetPageRank> を使用するには、 忘れずに <MTUsePageRank> タグを書き加えておく必要があります。 以下は、エントリに送信されたトラックバックの一覧を、それぞれ記事へのと PageRank に応じた画像で表示する例です。

の修正 〜 PageRank 順に並び替えるには

 リストアイテムなどを PageRank によって並び替えて表示するには、 <MTGPRPrepareContent> コンテナタグ、 <MTGPRPrepareContentParam> コンテナタグ、 <MTGPRContentLoop > タグを使用します。 以下は、エントリに送信されたトラックバックのうち、PageRank が高いものから順に 5 件だけ、 それぞれ記事へのと PageRank に応じた画像で表示する例です。 ちょっとややこしいですが、オマジナイとして見て下さい(^^;)ゞ

 ここではトラックバック先ページの PageRank が高い順にアイテムを表示しています。 他にも自分ののエントリを PageRank の高い順に並べてオススメ記事一覧を作ったりできます。

タグ

$MTUsePageRank$
 以下に続くタグの動作に必要な前処理を行う変数タグです。 そのため、各ファイルの先頭あたりにでも、必ず 1 度だけ記述してください。
 オプション等の指定はありません。
MTGetPageRank
 指定された URL の PageRank をキャッシュから取得し表示するためのコンテナタグです。 このコンテナタグの内部には http:// から始まる任意の URL を記述することができます。 そのため <MTBlogURL> や、 エントリアーカイブ中で <ntryPermalink> を利用して、 URL を持つあらゆるページの PageRank を取得することができます。
 PageRank が取得できると、このコンテナタグは 0 から 10 の値を返します。 指定された URL がキャッシュファイルにない場合は何も返しません。
 オプション等の指定はありません。
MTGPRPrepareContentParam
 MTGPRPrepareContent に対応する URL を指定します。 ここで指定された URL から PageRank を取得し、 その URL に関連付けられたリストアイテムなどのコンテンツを MTGPRPrepareContent で準備します。
 オプション等の指定はありません。
MTGPRPrepareContent
 後述の $MTGPRContentLoop$ で 並び替えに使用されるアイテムを準備するためのコンテナタグです。 この段階では、コンテナタグの内容はまだ表示されていません。 MTGPRPrepareContentParam と必ずセットで使います。
 オプション等の指定はありません。
$MTGPRContentLoop$
 MTGPRPrepareContent で準備しておいたコンテンツを、 PageRank に従って並び替えて表示するためのタグです。
 以下のオプションが指定できます。
count
表示するアイテムの最大数を指定します。指定がない場合は最大で 65536 個まで表示します。
offset
最初の offset 個のアイテムを飛ばしてからアイテムの表示を開始します。指定がない場合は最初のアイテムから表示します。
sort_order
アイテムの並び替える順番を ascend(昇順) または descend(降順)で指定します。 指定がない場合は降順(PageRank が高いものから順)で表示します

PageRank を取得・更新するには

 PageRank.pl にはキャッシュファイルを参照して、 指定された URL の PageRank を表示するだけの機能しかありません。
 実際に に問合せを行い URL の PageRank を取得する処理は db-update.cgi が行っています。 そのため、キャッシュファイルの PageRank のリストを最新に保つためには、 定期的に db-update.cgi を実行してやる必要があります。

トラブルシューティング

今この瞬間の PageRank が知りたいのですが
PageRank が分単位秒単位で変化する値でもないので、ほとんど意味がありません。 加えて、あまり頻繁に問合せると 先生に怪しまれれないかと心配です。
いつまで経っても MTGetPageRank が動作しません
db-update.cgi を使ってキャッシュファイルを更新してください。
私のサーバは cron が使えないのですが
申し訳ありません。今の私にはこれが限界です。
db-update.cgi を実行する頻度はどれくらいが適切でしょうか?
サイト規模と問合せる URL の数にもよりますが、PageRank がそれほど頻繁に変化するものでもないことから、数日間隔で問題ないと思われます。 この間隔が長いと新着 URL の PageRank 取得が遅れますが、だからと言って数時間おきに実行するのはかなり無駄です。
db-update.cgi でエラーが出ます
flock 命令が悪さをしているかも知れません。機会を見て対応したいと思います。

この記事を読んだ人はこんな記事も読んでいます ?

その他の関連する記事


関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事のトラックバック URL

コメントを投稿する

 (必須/公開)
 (必須/非公開)
 

コメントスパム防止のため投稿前に ランダムな数字 ? を入力してから投稿してください。 お手数ですがご協力のほど宜しくお願いいたします。(必須)