MTプラグイン: 重複トラックバックを防止する方法
投稿日: 2005年10月23日 17:13 [カテゴリ: Movable Type ]
トラックバックのスパムではないのだが、送信元のエラーなどにより同じトラックバックが複数届くことがある。送信側は悪気はないのだろうが、受ける側からすると、少々迷惑である。手動で1つだけ残して、残りを消すということも可能であるが、それは面倒である。そこで、オススメなのがここで紹介するプラグイン "Duplicate Trackback Ping Filter Plugin" である。ここでは、このプラグインの使用方法をメモっておく。
まず、このプラグインは、下記サイトよりダウンロードできる。
小粋空間: 重複トラックバック防止プラグイン
インストール方法
上記サイトにインストール方法も書かれているので、そちらを参考にした方が確実だが、ここでも、簡単にインストールの概略だけメモっておく。
- ダウンロードしたファイルを解凍する
- duplicateTBPingfilter.pl というファイルを mt/plugins/ (Movable Type のプラグインディレクトリ)にアップロードする
- 「設定」→「プラグイン」→「Duplicate Trackback Ping Filter Plugin」の設定で、チェックボックスにチェックを入れる。
これで、このプラグインを使用できるようになる。
設定例
このプラグインでは、いくつかのパラメータがあるが、私は以下のパラメータを変更した。これは、チェックするトラックバックの数の指定である。
その他のパラメータについては、上記サイトを参考にして下さい。
改良点
このプラグインは、特定記事への重複トラックバックを防止するためのものであるが、私個人としては、他の記事を含めて、特定の記事からの自分のサイトへの重複トラックバックも防止したかったので、以下のような修正を加えた。
修正前:
my $ping_iter = MT::TBPing->load_iter({tb_id=>$ping->tb_id},
修正後:
my $ping_iter = MT::TBPing->load_iter({blog_id => $ping->blog_id},
上記改良を加えることで、特定記事へのトラックバックではなく、自分のサイトへの重複トラックバックを防止できるはず。今のところ、問題は発生していないので、うまく動作しているものと思われる。
その他、上記サイトに記載されているが、重複トラックバックと判定した際にトラックバックの送信元にエラーを返さないように Trackback.pm も以下のように修正を加えた。(MT 3.2 の場合)
修正前:
return $app->_response(Error => "", Code => 403);
修正後:
return 1;