「「最近のTrackback」のカテゴリトラックバック対応」で、カテゴリへのトラックバックを受け付ける設定に関連して表示をするよにしたが、カテゴリへのトラックバックを受け付けていないカテゴリでも、「カテゴリトラックバックURL」の表示がでてしまうのがきにいらなかった。そりゃ、実際のURLはその後に表示出てないから受け付けないってのはわかるだろーが、この文言自体を出したくなかったのである。
というわけで、なんかシンプルなの無いかなぁと探していたら・・結構色々なプラグインをつくっていらっしゃる(おひらもぢつはこっそり他にも入れているが、まだコメント書いてない)Brad Choateさんの、
「MTIfEmpty」というプラグインをつかってみることにする。
【使い方】
このプラグインは、<MTIfEmpty>と<MTIfNotEmpty>の2つのタグを持つ。
たとえば、Individualアーカイブや<MTEntry>の中で、
<MTIfEmpty var="EntryTitle">(untitled)</MTIfEmpty>とすると、エントリのタイトルに値が入っていなければ「(untitled)」という文字列を表示するという意味である。
<$MTEntryTitle$>
<MTIfNotEmpty var="EntryTrackbackLink"><span class="minitrackbackurl">トラックバックURL: <$MTEntryTrackbackLink$></span></MTIfNotEmpty>とすると、エントリトラックバックに値が入っていれば、トラックバックURLを表示する。というよーな形ができる。(ま、他の標準タグ(<MTEntryIfAllowPings>)があるので、エントリへのトラックバックについてはこのやり方をする必要は全くないが、例題としてあげましたでふ)
<MTIfNotEmpty var="データ名">や><MTIfNotEmpty var="データ名">で使用できる「データ名」は、それぞれのテンプレートのその位置で使えるとある名前が「<$MTなんちゃら$>」だとすると頭の「<$MT」と最後の「$>」を削除して「なんちゃら」という部分のみを記述する形となる。
でもっておひらのカテゴリページ(例として、トラックバック受け付けているページとして、Movabletypeのカテゴリページ、受け付けていないページとして、Infomationのカテゴリページを見るとよいかもしれない。ま、状況は変わるかもしれんが、今のところこの2つのトラックバック設定はしばらく変えないと思うし・・・・(^^;))
カテゴリアーカイブのテンプレートに以下の記述を書いたのである。
<MTPings lastn="1">
<div class="comments-head"><a name="comments"></a>トラックバック</div>
</MTPings><MTPings lastn="5">
<div class="comments-body"><a name="TB_<$MTPingID pad="1"$>"></a>
<a href="<$MTPingURL$>" target="_blank"><$MTPingTitle$></a> from <$MTPingBlogName$>( <$MTPingDate format="%Y/%m/%d %X"$> )<br />
<span class="minitrackbackurl"><$MTPingExcerpt$></spam><br />
</div>
</MTPings><MTIfNotEmpty var="CategoryTrackbackLink">
<div class="comments-body"><span class="minitrackbackurl">カテゴリトラックバックURL: <$MTCategoryTrackbackLink$></span></div>
</MTIfNotEmpty>
【インストール方法】
1.「MTIfEmpty」のページからファイルをダウンロードする。(2004/8/28現在は、バージョン1.11である)前述ページの「You can download this plugin here: mtifempty-1_11.zip.」というところからダウンロードできるはずである。(バージョンはかわるかもしれんが)
2.ダウンロードしたファイルを解凍する。(zipが解凍できるソフトを用意してからだよん)
3.mt.cgiが存在するディレクトリが、MT_DIRという名前と仮にして、以下の位置に解凍したファイルをアップロードする。(アップロードするファイルは解凍した中のうち2個。アップロードするディレクトリが存在しない場合は、ディレクトリを作成すること。この作者さんのプラグインを使ったことが無い人の場合は、多分「MT_DIR/extlib/bradchoate/」というディレクトリを作ることになるであろう)
MT_DIR/plugins/ifempty.pl
MT_DIR/extlib/bradchoate/ifempty.pm
4.目的に応じてテンプレートを修正して、それに関連したアーカイブやインデックスページ等を再構築する。(おひらの場合は、カテゴリアーカイブのみに手をいれたので、カテゴリアーカイブ全部の再構築でした。ここは人によってかわるだろーと思われる)
【そーいえば余談】
作者さんのサイトの最近のエントリ「Go West, Young Man」を見てみると、Brad ChoateさんはSix Apartのエンジニアさんになったらしーので、Movabletype(3.1以降)に彼が作ったプラグイン機能がどこまで標準で取り込まれるかがたのしみである。お引っ越しお疲れ様ある。アメリカは国内っちゅーても遠いだろーしさ。
【さらに気が付かなかったけれど追記(2004/08/29)】
どーやら、Movabletype 2.65以降では、「<MTIfNonEmpty>」いうタグが追加されているらしく、おひらがやりたかったことは標準でできてしまったりするのである。まー逆のエンプティだったらってタグは無いよーなので、それはそれで使えそうであるが。
というわけで、2.65以上の場合におひらの<MTIfNotEmpty>を標準タグで書くと以下の感じである。(面倒なのでソコだけ抜き出し)var="なんちゃら"がtag="MTなんちゃら"になったりするのでちょこっと書き方が違う。
<MTIfNonEmpty tag="MTCategoryTrackbackLink">
<div class="comments-body"><span class="minitrackbackurl">カテゴリトラックバックURL: <$MTCategoryTrackbackLink$></span></div>
</MTIfNonEmpty>
うにゅう、もっとマニュアル見ろよぢぶんだな(苦笑)