Trackbackをできるようにする (MT)

| | コメント(0)

このblogの話じゃないです。
別のblogでの話です。。。

トラックバックの設定をONにする

MTの管理者ページで「トラックバックを受けいれる」にチェックを入れると、エントリーに「トラックバックURL」のリンクが表示されます。
「トラックバックURL」は「http://example.jp/MT/mt-tb.cgi/123」の様な感じになります。

「トラックバックURL」に「?__mode=rss」を付加して、「http://example.jp/MT/mt-tb.cgi/123?__mode=rss」にアクセスすると、トラックバックURLで指定したエントリに対するPingの一覧をXMLの形式で受信できます。

トラックバックの仕組みについては、トラックバック技術仕様書 (邦訳)を参考のこと。

トラックバックを受けられない

● 問題

XMLの形式で受信できるはずなんですが、実際に私のblogでアクセスしてみると「404 - Not Found」のエラーが出てしまいました。
つまり、外部からトラックバックを受ける事ができません。

また、MTの管理者ページから私のblogにトラックバックすると、以下のエラーが出ました。

トラックバックか、アップデート情報の送信でエラーがありました エラーのときはログをチェックしてください
MTの管理者ページからトラックバックした後の画面より

しかも、ログを表示しようとしても、以下のダイアログが表示されてログを表示できません。

このページにはデータがありません。

ずっと放置していたんですが、やっと原因がわかりました。

● 解決方法

Windows + IIS の話です。

  1. 「インタネットインフォメーションサービス」>「Webサイト」(または、バーチャルホスト名)>右クリック>「プロパティ」>「ホームディレクトリ」タブ>「構成」ボタン>「拡張子:.cgi」>「編集」ボタン
  2. 「アプリケーションの拡張子マッピングの追加/編集」ダイアログが開くので「ファイルの存在を確認する」のチェックを外します。

アプリケーションの拡張子マッピングの追加/編集 ダイアログ

トラックバックURLの終わりに「/数字」があったから、ファイルを見つけられなかったみたいです。
このチェックは付けておきたかったんだけどな・・・。

カスタマイズ

● 各エントリのページにトラックバックを表示する

BLOG質問箱: トラックバック表示に書かれているように「Individual Entry Archive」テンプレートの適当な位置に以下を追加しました。

<!-- トラックバック表示 -->
<MTEntryIfAllowPings>
<div class="comments-head">Trackback</div>
<MTPings>
<div class="trackback-body">
<span class="trackback-post">
<b>Title:</b> <a href="<$MTPingURL$>" target="new"><$MTPingTitle$></a><br />
<b>Excerpt:</b> <$MTPingExcerpt$><br />
<b>From:</b> <$MTPingBlogName$><br />
<b>Date:</b> <$MTPingDate format="%Y.%m.%d"$>
</span>
</div>
</MTPings>
</MTEntryIfAllowPings>
<!-- トラックバック表示終わり -->

● トラックバック着信で自動リビルドする

ただし、トラックバック表示がPermalinkに反映されるタイミングは、トラックバックを受けた後でそのエントリーにコメントを受けるなどしてリビルドされたときになります。注意してください。
BLOG質問箱: トラックバック表示

とのこと。
これは不便なので、是非修正しておかねば。

HuntingGirledCollective: トラックバック着信で自動リビルドに書かれているように、

package MT::App::Trackback (\lib\MT\App\Trackback.pm) を編集するそうです。

require MT::Blog;
my $blog = MT::Blog->load($blog_id);
$app->rebuild_indexes( Blog => $blog )
    or return $app->_response(Error =>
        $app->translate("Rebuild failed: [_1]", $app->errstr));
 
# 2004/03/16 追加 ここから
$app->rebuild_entry( Entry => $entry )
    or return $app->_response(Error =>
        $app->translate("Rebuild failed: [_1]", $app->errstr));
# 2004/03/16 追加 ここまで

● 最近のトラックバックを表示する

さらに、BLOG質問箱: リーセントトラックバックで説明されている方法で最近のトラックバック5本をサイドに表示するようにしました。

Main Index テンプレートの適当な位置に以下を追加しました。

<div class="sidetitle">
最近のトラックバック
</div>
<MTPings lastn="5">
<div class="trackback-body">
<a name="<$MTPingID$>"></a>
<span class="trackback-post">
<b>title:</b><a href="<$MTPingURL$>" target="new"><$MTPingTitle$></a><br />
<b>excerpt:</b> <$MTPingExcerpt$><br />
<b>from:</b> <$MTPingBlogName$><br />
<b>date:</b><$MTPingDate format="%Y.%m.%d"$>
</span>
</div>
</MTPings>


以前どこかで「Trackbackのないblogはいらない」とかいう発言を読んだけど、これで少し安心(?)。
上記変更を加えたblogはこのblogじゃないけどさ・・・。

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2004年3月16日 15:31に書いたブログ記事です。

ひとつ前のブログ記事は「あなたの「うつ度」を判定」です。

次のブログ記事は「オトナ語の謎。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261