ちなのひとりごと

トラックバック:完結編?

カテゴリー Movable Type :(2004/03/06 3:41 am)

 先ほど,リーセントトラックバックを表示する修正を行った.これだけではなく,さらに各エントリーの個別表示画面にもトラックバックを表示させるように修正を行うことにする.
 参考にしたのはトラックバック表示(BLOG質問箱)である.これはとても簡単で,Individual Entry Archiveに以下のソースを追加するだけでOKであった.

<!-- トラックバック表示 -->
<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>
<!-- トラックバック表示終わり -->

 さて,実はここで問題が発生する.先のBLOG質問箱には,こう書いてあった.

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

そのため,今度はこれを何とかしないといけない.これに関する情報はいくつかあったが,今回参考にしたのは,トラックバック着信で自動リビルド(HuntingGirledCollective)と,MTいじり(numalog)の二つであった.ソース記述の部分が微妙に異なっていたこともあり,今回は前者を特に参考にした.
 これも実は非常に簡単で,/lib/MT/App/Trackback.pmのソース部分(200行ちょっと越えたあたりかな)に以下のような記述を追加するだけである.なお,追加分は赤字で設定してある.

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));

$app->rebuild_entry( Entry => $entry )
or return $app->_response(Error =>
$app->translate("Rebuild failed: [_1]", $app->errstr));

 これでトラックバック関係はほぼ大丈夫だろう.あとはトラックバックがたくさん来るのを待つだけ,か.

コメント

コメント(2) “トラックバック:完結編?”

  1.  ぬまさん,コメントありがとうございました.
    なんか出過ぎたマネみたいな形になってしまいましたがご容赦ください.
    私は初心者ですので,一つ一つ確実にやらないと分からなくなってしまいます.
    だからうまい具合にソースの違いを見つけられたのかもしれませんね.

  2. ちなさん,こんにちは.
    2つあったうちの後の方を書いた者です.
    前者の方と違ってたんですね.
    今まで気付いていませんでした.
    多分,私の方がMTのヴァージョンが古いあたりも関係してると思います.
    やったことは直前のコードをまねただけで,一緒なので….
    今度時間ができてヴァージョンアップする際,改めて確認してみます.
    TrackBackでお知らせいただいたおかげで気付きました.
    ありがとうございました.

コメントする